Wpf 动态填充listview
如果我将数据表绑定到WPF Toolkit数据网格…无需在其中指定列名…它将自动从数据表中获取该列名 但是如果我要将列表视图绑定到一个可观察的集合…我必须在xaml文件中为每一列逐个指定列标题名 所以如果我有一个列名列表->Wpf 动态填充listview,wpf,listview,mvvm,binding,header,Wpf,Listview,Mvvm,Binding,Header,如果我将数据表绑定到WPF Toolkit数据网格…无需在其中指定列名…它将自动从数据表中获取该列名 但是如果我要将列表视图绑定到一个可观察的集合…我必须在xaml文件中为每一列逐个指定列标题名 所以如果我有一个列名列表->list 随着 要填充的项目列表->列表 我可以将项目列表绑定到列表视图…并将列名列表绑定到列表视图标题…但我不知道列表视图中是否有任何属性…来绑定我的标题 这意味着 我有一个用户控件,其中我有两个列表视图…一个可用,另一个被选中。我需要这个用户控件应该是可重用的…这意味着…
list
随着
要填充的项目列表->列表
我可以将项目列表绑定到列表视图…并将列名列表绑定到列表视图标题…但我不知道列表视图中是否有任何属性…来绑定我的标题
这意味着
我有一个用户控件,其中我有两个列表视图…一个可用,另一个被选中。我需要这个用户控件应该是可重用的…这意味着…如果我绑定一个列表,比如…列表应该包含两列…第一列的名称为“state”,第二列的名称为“county”。但是如果我绑定一个列表,比如..,那么listview应该包含3列…列名为fruit、color和price。我认为最好将listview的View属性设置为GridView。然后可以轻松绑定列标题:
<ListView ItemsSource="{Binding ListOfValues}">
<ListView.View>
<GridView >
<GridViewColumn DisplayMemberBinding="{Binding XVal}" Header={binding header}"/>
</GridView>
</ListView.View>
</ListView>
如果使用包含列表和名称的结构:<{listofruits,“Fruits”},{listofStates,“States>
然后:
<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>
这不是最好的方法,但我不知道如何做您的意思是header={binding header}中的“header”是列列表。如果“header”是项列表中的items属性之一(例如XVal),是的。否则,您可以更改标题绑定的源,但不要忘了DataContext是在列表的当前项上设置的。我在源列表中有多个列…不是单列。我需要动态生成gridcolumns。哦,抱歉,不,我不理解您的问题。我想,添加道具会更容易项目中的标题(例如称为标题)。否则,正如我所说,您必须更改header的绑定源您如何更改网格源???我的要求是…我有一个用户控件,其中我有两个列表视图…一个可用,另一个被选中。我需要此用户控件应可重用…这意味着…如果我绑定一个类似…的列表,该列表应包含两个columns…第一列的名称为“state”,第二列的名称为“county”。但是如果我绑定了一个列表,如..那么listview应该包含3列…列名为fruit、color和price。你用这种方法做什么?…你在创建GridView列表吗?listview列表,其中view属性设置为gridViw,其中只包含一列