Wpf DataGridComboxColumn单元格是否未显示所选项目文本?
我想知道当DataGridComboBoxColumn不处于编辑模式时,如何让它显示所选项目文本?是否可以使编辑模式下的组合框最初显示所选项目文本 这是我的XAML: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 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]: