【发布时间】:2015-10-21 10:14:25
【问题描述】:
我有一个 DataGrid,其中一列是 DataGridComboBoxColumn:
<DataGrid AutoGenerateColumns="False" CanUserAddRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="User Name" Width="Auto" Binding="{Binding UName}"/>
<DataGridComboBoxColumn Header="Country" Width="Auto" ????/>
</DataGrid.Columns>
</DataGrid>
我有一个 Country 课程:
public class Country{
public string name {get; set;}
public string des {get; set;}
public Country() {}
public Country(string n, string d) {
this.name = n;
this.des = d;
}
}
它们有名称和描述,我希望(多个 Country 对象的)名称填充组合框(以及每个组合框选项的工具提示),我该怎么做?
注意:稍后我想让用户能够添加新的国家/地区,所以我希望组合框也可以更改(包括新的国家/地区),这意味着解决方案需要允许这样做。
注意 2:我没有使用 MVVM 模式。编辑:意味着它不是重复的。
【问题讨论】:
-
这如何解决我的问题?我没有使用 MVVM 模式,所以这个: ConnectionViewModel vm = new ConnectionViewModel();数据上下文 = vm;对我没有帮助。
-
为您的列添加一个名称。在后面的代码中,创建一个国家列表并分配给它的 ItemsSource。
-
这显示为对象,我只想要名称:我有一个名为“User”的类,它是数据网格中其余列的 itemSource(在上面的示例中 -用户名),每个用户都有一个名称和国家,是否会按照您的建议进行操作,以便当用户更改组合框中的国家/地区时,用户实例中国家属性的值也会更改?
-
为列设置 selectedValuePath、DisplayValuePath & SelectedValueBinding
标签: c# wpf datagrid datagridcomboboxcolumn