Wpf DataGridComboxColumn单元格是否未显示所选项目文本?

Wpf DataGridComboxColumn单元格是否未显示所选项目文本?,wpf,.net-4.0,datagrid,datagridcomboboxcolumn,Wpf,.net 4.0,Datagrid,Datagridcomboboxcolumn,我想知道当DataGridComboBoxColumn不处于编辑模式时,如何让它显示所选项目文本?是否可以使编辑模式下的组合框最初显示所选项目文本 这是我的XAML: <DataGridComboBoxColumn Header="Formatter" SelectedItemBinding="{Binding Path=Format}"> <DataGridComboBoxColumn.ElementStyle>

我想知道当DataGridComboBoxColumn不处于编辑模式时,如何让它显示所选项目文本?是否可以使编辑模式下的组合框最初显示所选项目文本

这是我的XAML:

<DataGridComboBoxColumn Header="Formatter" 
                        SelectedItemBinding="{Binding Path=Format}">
  <DataGridComboBoxColumn.ElementStyle>
    <Style TargetType="">
      <Setter Property="Text" Value="{Binding Path=FormatView.Name}" />
    </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>

我完全不知所措,但也许可以尝试以下方法:删除ElementStyle,改为设置DisplayMemberPath,例如:

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


路径也可能是FormatView.Name,我不清楚您的数据结构。你是如何设置DataGridComboBoxColumn的ItemsSource的?

好的,我在谷歌搜索了很多次后才知道

但似乎您只是对ElementStyle做了同样的事情,同样是对组合框的目标类型,即使它在不编辑时似乎没有显示组合框

<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>

这是我在DataGridComboxColumn上发现的唯一有用的资源:


其他一切(我在非MSDN网站上发现的)都是误导性的

添加了代码示例,不幸的是,我现在无法验证语法的正确性,这没有帮助,让我也澄清一下,组合框正在工作,它成功地将值绑定到数据上下文,唯一的问题是它没有显示其当前选定值的文本,只是一个空白单元格。谢谢,因此如果您选择一个新值,然后停止编辑,则会显示正确的值?Visual Studio输出不会显示绑定表达式错误?我注意到DataGridComboxColumn.ElementStyle的TargetType是一个空字符串,它甚至没有在我的studio中编译。你的代码里写了什么?我有另一个想法,尽管我越来越绝望;)看看这个答案,这对你最有帮助[[1]: