这让我抓狂。我有一个DataGrid,其中包含一个DataGridComboBoxColumn,我希望用户能够使用它来进行选择。这是我的网格的基本概述。
<DataGrid ItemsSource="{Binding GoalList}" DockPanel.Dock="Bottom" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn ItemsSource="{Binding LifeAreaList}" Header="Life Area"/>
<DataGrid.Columns>
</DataGrid>
数据网格(DataGrid)绑定了一个类型为Goal的对象集合,每个Goal具有一个类型为LifeArea的属性。每个LifeArea都有LifeAreaId和Name属性。
数据上下文包含一个可观察的目标集合(GoalList)和一个生活领域列表(LifeAreaList)。我希望用户能够为目标选择不同的生活领域。此外,生活领域的名称需要成为显示值。
编辑
解决方法是将DataGridComboBoxColumn的ItemsSource设置为静态资源。另一种选项是通过代码设置ItemsSource。
最终结果如下:
<DataGridComboBoxColumn x:Name="_lifeAreaComboBoxColumn" SelectedItemBinding="{Binding LifeArea}" DisplayMemberPath="Name" Header="Life Area">
在代码后台,我设置了ItemsSource:
_lifeAreaComboBoxColumn.ItemsSource = LifeAreaDAL.GetLifeAreas();
我有机会的话,我会把这个转换为静态资源。
GridComboBoxColumn
怎么知道哪个生活领域被选中了呢?你也需要将SelectedItem
绑定到某个东西上。 - Kent Boogaart