我在将类绑定到我的TreeView
时遇到问题。真的没有用,我什么也没显示。
这是我的课程:
public class Main
{
public List<Child1> Ch1 { get; set; }
public List<Child2> Ch2 { get; set; }
}
public class Child1
{
public String CName { get; set; }
public List<Grandson> Grandson { get; set; }
public int Age { get; set; }
}
public class Grandson
{
public String GName { get; set; }
public List<Son> Son{ get; set; }
public List<Daught> Daught{ get; set; }
public int Age { get; set; }
}
public class Son
{
public String OName { get; set; }
public int Age { get; set; }
}
public class Daught
{
public String DName { get; set; }
public int Age { get; set; }
}
public class Child2
{
public String C2Name { get; set; }
public int Rights { get; set; }
}
如您所见,我有很多列表,并且列表中的列表都想放入TreeView中。
<TreeView Grid.Row="1" ItemsSource="{Binding Main}" IsEnabled="{Binding TreeEnabled}" >
<TreeViewItem Header="{Binding CName}" ItemsSource="{Binding Ch1}" >
<TreeViewItem Header="{Binding GName}" ItemsSource="{Binding Grandson}" >
<TreeViewItem Header="{Binding OName}" ItemsSource="{Binding Son}" >
</TreeViewItem>
<TreeViewItem Header="{Binding DName}" ItemsSource="{Binding Daught}"></TreeViewItem>
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="{Binding C2Name}" ItemsSource="{Binding Child2}"></TreeViewItem>
</TreeView>
我认为绑定有问题,但不知道是什么问题。
答案 0 :(得分:1)
首先:要将列表绑定到视图时,必须先创建ObservableCollection <T>
,否则它不会显示对视图的更改。 (我不知道您对C#有多熟悉,所以我在<T>
中说,T表示您要在其中列出它们的任何类型。例如ObservableCollection <Person>
。)
第二个:如果将整个列表绑定到树视图,则不需要一个一个地绑定。
第三:您是否在任何地方为绑定设置了DataContext?
您需要在代码隐藏中执行以下操作:
this.DataContext = new Class();
,然后绑定到此Class属性。该类应该是您在viewmodel中的主要类。
答案 1 :(得分:0)