我在wpf中有一个ListView
<ListView Name="listArea">
<ListView.View>
<GridView>
<GridViewColumn x:Name="colName" Header="نام تحویلدار" Width="150" DisplayMemberBinding="{Binding Path=name}"/>
<GridViewColumn x:Name="colComboBox" Header="منطقه" Width="120" DisplayMemberBinding="{Binding Path=cb}"/>
</GridView>
</ListView.View>
</ListView>
我想将项目添加到listview。第一列是文本,第二列是comboBox。
foreach(personel ptahvildar in STATICS.db.personels.Where(q=>q.postCode==2))
{
ListViewItem item = new ListViewItem();
ComboBox cbox = new ComboBox();
cbox.ItemsSource = STATICS.db.personels.Where(q => q.postCode == 2);
cbox.DisplayMemberPath = "name";
cbox.SelectedItem = ptahvildar;
item.Content = new { name = ptahvildar.name, cb = cbox };
listArea.Items.Add(item);
}
但结果是这样的
为什么我的comboBox无法正确显示?
答案 0 :(得分:0)
您应该修改ListView.itemTemplate property并添加数据模板。
使用带有数据模板的项目模板,您可以为列表视图中的每个订单项添加复选框,组合框,文本框,按钮等。 Here是SO中答案的一个例子。
<ListView ItemsSource="{Binding Links}" x:Name="ListView1">
<ListView.ItemTemplate>
<DataTemplate>
<Border>
<Button Command="{Binding ElementName=ListView1, Path=DataContext.GetOddsCommand}" CommandParameter="{Binding}">
<TextBlock Text="{Binding}" />
</Button>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
除了您只需使用组合框而不是按钮并使用正确的绑定..