WPF DataGridComboBoxColumn

Hax*_*lit 5 data-binding wpf datagrid combobox

您好我正在使用WPF DataGrid,我正在尝试让ComboBox列工作.

<tk:DataGridComboBoxColumn Header="GroupLevel"
                           DisplayMemberPath="Type"
                           SelectedItemBinding="{Binding Path=GroupLevel}"
                           >
    <tk:DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" />
        </Style>
    </tk:DataGridComboBoxColumn.EditingElementStyle>

</tk:DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)

当我查看网格时,列是空白的,就像它没有使用显示成员路径一样.但是一旦我在列中单击,组合框就会显示并显示我的ItemsSource中的所有项目并选择正确的项目,因此我知道绑定都正常工作,甚至是DisplayMemberPath.就在我不编辑单元格时,它显示为空白.

我错过了一处房产吗?

谢谢,劳尔

Ara*_*and 15

我很确定这是因为当你没有处于编辑模式时,你的列没有物品来源,而且ComboBox无法拥有没有物品来源的选定物品.只要你进入编辑模式,你的专栏就会得到它的物品来源,一切都很酷.您可以通过指定项目源来解决此问题: -

<tk:DataGridComboBoxColumn.ElementStyle>
    <Style TargetType="ComboBox">
        <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" />
    </Style>
</tk:DataGridComboBoxColumn.ElementStyle>
Run Code Online (Sandbox Code Playgroud)

然后你的编辑元素和你的(非编辑)元素都有相同的ItemsSource

  • 您是否知道即使在ViewMode中也可以使comboBox可见.我希望我的用户知道,这是一个ComboBox (3认同)