如果我将数据表绑定到WPF Toolkit-data-grid .....则无需在那里指定列名...它将自动从数据表中获取。
但是,如果我将列表视图绑定到可观察集合......我必须在xaml文件中逐一指定每列的列标题名称。
如果我有一个列名列表 - &gt; List<ColumnHeaderNames>
随着
要填充的项目列表 - &gt; List<Object to populate list>
我可以将项目列表绑定到列表视图...和列名列表到列表视图标题...但我不知道列表视图中是否有任何属性...绑定我的标题。
这意味着......
我有一个用户控件,其中我有2个列表视图...一个可用,另一个被选中。我需要这个用户控件shud可以重用......这意味着......如果我绑定一个像...这样的列表shud包含两列...第一列的名称为“state”,第二列的名称为“county” ”。但是,如果我绑定一个类似的列表..然后listview shud包含3列......列名称为水果,颜色和价格。
答案 0 :(得分:1)
我认为最好的方法是将ListView的View属性设置为GridView。然后您可以轻松绑定列标题:
<ListView ItemsSource="{Binding ListOfValues}">
<ListView.View>
<GridView >
<GridViewColumn DisplayMemberBinding="{Binding XVal}" Header={binding header}"/>
</GridView>
</ListView.View>
</ListView>
如需了解更多信息,请访问http://msdn.microsoft.com/en-us/library/system.windows.controls.gridview.aspx
答案 1 :(得分:0)
如果您使用包含列表和名称的结构:&lt; {listOfFruits,“Fruits”},{listofStates,“States&gt;
然后:
<ItemsControl ItemsSource="{Binding ListOfStruct}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding ListOfitem}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding}" Header="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListView}, Path=DataContext.Header}"/>
</GridView>
</ListView.View>
</ListView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这不是最好的方式,但我不知道该怎么做