如何在WPF中使用枚举值分层地绑定一个树视图

本文关键字:绑定 视图 一个 分层 WPF 枚举 | 更新日期: 2023-09-27 18:09:01

好的,所以我不确定这是否可能,但我会在这里问这个问题,并希望得到答案。

假设我有一个类的列表,比如Media项定义如下

Enum MediaItemType{
  Book,
  CD,
  VideoGame
}
public MediaItem{
  public string Name { get; set; }
  public MediaItemType { get; set; }
}

现在假设我想将MediaItem列表绑定到TreeView,这样每个MediaItem根据媒体项类型在单独的子树中结束。这可能吗?如果可能,我该怎么做?

在我的xml代码中,我假设我已经在上下文中将列表定义为一个名为MediaItems的属性。

<Grid>
   <TreeView ItemsSource="{Binding Path=MediaItems}">
</Grid>

树视图应该是这样的

Book
  - In to the wild
  - Code Complete
CD
  - Foo Fighters
  - Bach
DVD
  - X-men
  - Casino Royale

如何在WPF中使用枚举值分层地绑定一个树视图

没什么问题。在模型中,你有MediaItem,在模型视图中你必须有MediaItemView类型,像这样:

public class MediaItemView
{
    public MediaItemType { get; set; }
    public List<MediaItem> medialist;
}

在该类上定义绑定,并定义一个Converter,它将enum值转换为string表示。

我不知道关于树视图,但你可以实现类似的东西,你描述使用GroupDescription分组在MediaItemType属性与ListBox或ListView在这里描述