如何以编程方式将WPF TreeView绑定到List ?

所以我对WPF很新,并尝试将一个Drink值列表绑定或分配给wpf树视图,但不知道如何做到这一点,并发现很难在网上找到任何不使用xaml显示内容的东西。

struct Drink { public string Name { get; private set; } public int Popularity { get; private set; } public Drink ( string name, int popularity ) : this ( ) { this.Name = name; this.Popularity = popularity; } } List coldDrinks = new List ( ){ new Drink ( "Water", 1 ), new Drink ( "Fanta", 2 ), new Drink ( "Sprite", 3 ), new Drink ( "Coke", 4 ), new Drink ( "Milk", 5 ) }; } } 

我怎么能在代码中这样做? 例如:

 treeview1.DataItems = coldDrinks; 

并且所有内容都显示在树视图中。

你可以设置:

 treeView1.ItemsSource = coldDrinks; 

但是,我在这里质疑TreeView的使用。 您显然显示平坦的非分层数据,因此没有理由使用TreeView。

为什么不使用ListView或ListBox?

里德说的是什么。 加:

您没有找到编程示例的原因是它不适合在代码中完成。 正如Reed所说,您设置了ItemsSource属性,但这并不能提供您正在寻找的结果。 在您的示例中,输出将是:

 MyApplication.Drink MyApplication.Drink MyApplication.Drink MyApplication.Drink MyApplication.Drink 

这是因为默认项模板只显示项的ToString()方法的结果。 要获取饮料的名称,您需要指定自定义项目模板。 这最好在XAML中完成。

         

您可以创建模板并将其附加到代码中,但是比在XAML中执行它要多得多。