DataGridComboBoxColumn cell not displaying selected item text?

后端 未结 3 729
不知归路
不知归路 2020-12-21 02:40

I was wondering how you get the DataGridComboBoxColumn to display the selected item text when it is not in editing mode? And also is it possible to make it so the combo box

相关标签:
3条回答
  • 2020-12-21 03:10

    I'm quite at a loss, but maybe try the following: Remove the ElementStyle and instead set the DisplayMemberPath, e.g.:

    <DataGridComboBoxColumn Header="Formatter" SelectedItemBinding="{Binding Path=Format}" DisplayMemberPath="Name">
    

    Path might also be FormatView.Name, I don't have a clear picture of your data structure. And how did you set the ItemsSource of your DataGridComboBoxColumn?

    0 讨论(0)
  • 2020-12-21 03:15

    This was the only resource on DataGridComboBoxColumn that I found helpful:

    http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcomboboxcolumn.aspx

    Everything else (that I found on non-MSDN sites) was misleading!

    0 讨论(0)
  • 2020-12-21 03:24

    Ok I figured it out after a lot of googling.

    but it seems you just do the same thing for ElementStyle, again with the target type of combo box, even though it does not seem to show a ComboBox when not editing.

    <DataGridComboBoxColumn Header="Formatter" SelectedItemBinding="{Binding Path=Format}">
            <DataGridComboBoxColumn.ElementStyle>
                <Style TargetType="ComboBox">
                    <Setter Property="ItemsSource" Value="{Binding Path=DefinedFormatters}" />
                    <Setter Property="IsDropDownOpen" Value="True" />
                    <Setter Property="ItemTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <TextBlock Text="{Binding Path=Name}"></TextBlock>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataGridComboBoxColumn.ElementStyle>
            <DataGridComboBoxColumn.EditingElementStyle>
                <Style TargetType="ComboBox">
                    <Setter Property="ItemsSource" Value="{Binding Path=DefinedFormatters}" />
                    <Setter Property="IsDropDownOpen" Value="True" />
                    <Setter Property="ItemTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <TextBlock Text="{Binding Path=Name}"></TextBlock>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataGridComboBoxColumn.EditingElementStyle>
        </DataGridComboBoxColumn>
    
    0 讨论(0)
提交回复
热议问题