如何在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
没什么问题。在模型中,你有MediaItem
,在模型视图中你必须有MediaItemView
类型,像这样:
public class MediaItemView
{
public MediaItemType { get; set; }
public List<MediaItem> medialist;
}
在该类上定义绑定,并定义一个Converter
,它将enum
值转换为string
表示。
我不知道关于树视图,但你可以实现类似的东西,你描述使用GroupDescription分组在MediaItemType属性与ListBox或ListView在这里描述