所以我在数据绑定方面遇到了一个奇怪的问题。我试图将List数据绑定到树视图,由于某种原因,我可以选择作为绑定的一部分创建的项目。
绑定来源:
<TreeView Name="paramTree"
BorderBrush="DarkSlateGray"
Margin="0,0,0,1">
<TreeViewItem Name="systemNode"
Header="System Info"
ItemsSource="{Binding}">
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TreeViewItem Header="{Binding}"/>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
</TreeView>
代码背后:
private PropertyList sysList = new PropertyList(typeof(System.Environment));
public MainWindow()
{
InitializeComponent();
.
.
systemNode.DataContext = sysList;
}
class PropertyList : List<string>
{
public PropertyList(Type t)
{
// Get properties of this type
PropertyInfo[] propertyInfo = t.GetProperties();
foreach (PropertyInfo property in propertyInfo)
{
Add(property.Name);
}
}
}
这将创建一个“System Info”节点的子树,其中包含System.Environment的所有属性,但是我无法单击任何新的TreeViewItems ...帮助?
答案 0 :(得分:2)
只是从看这个我认为这是那个老问题,如果我错了就纠正我......
TreeView会自动围绕您的项目生成TreeViewItem。你的ItemTemplate应该是:
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</TreeViewItem.ItemTemplate>