gpt4 book ai didi

c# - 将 TreeView 与 ObservableCollection 绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:12 24 4
gpt4 key购买 nike

我正在使用 Visual Studio 2010 在 C# 中制作一个播放器。我正在寻找一种显示文件播放列表的方法。所以我正在使用 TreeView,我想将它与 ObservableCollection 绑定(bind)。我的 ObservableCollection:

public class Media
{
string type; // Video, music, or picture
string name; // example : 50-cent.mp3
string path; // The path of the file
}

public class Playlist
{
string name; // The name of the playlist
ObservableCollection<Media> list; // The list of Media
}
public ObservableCollection<Playlist> playLists = new ObservableCollection<Playlist>();

如您所见,我有 var 播放列表,里面有元素,里面有媒体列表。

我想在wpf中显示这个对象,我觉得最好的是TreeView。我在互联网上找不到绑定(bind) TreeView 和我的 var 播放列表的方法。我不知道如何在我的 WPF 中创建我的 TreeView :S ...我在网上看到有人使用 HierachicalDataTemplate,但我真的不知道该怎么做。

请帮忙

编辑我正在尝试 David 给出的帖子,我把我的 WPF

<TreeView Grid.Column="1" Height="193" HorizontalAlignment="Left" Margin="15,209,0,0" Name="treeView1" VerticalAlignment="Top" Width="120">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type src:Playlist}" ItemsSource="{Binding list}">
<TextBlock Text="{Binding name}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type src:Media}">
<TextBlock Text="{Binding name}"/>
</DataTemplate>
</TreeView.Resources>
</TreeView>

我有问题,我仍然一无所获 :S 。我完全喜欢教程:S

最佳答案

如果你想有如下图这样的效果:

enter image description here enter image description here

你可以看看这个帖子:WPF Treeview: data binding of heterogeneous types of data using CompositeCollection class

注意:您需要从 INotifyPropertyChanged 接口(interface)派生您的类:

public class Media : INotifyPropertyChanged 
{
string _name;
string Name {
get {return _name;}
set { _name=value; OnPropertyChanged("Name");}} //OnPropertyChanged is important!
...
}

查看有关 INotifyPropertyChanged 的​​更多帮助 here .

关于c# - 将 TreeView 与 ObservableCollection 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15593166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com