我试图将转换器应用于ComboBoxEdit的显示项目
当我只使用ComboBoxEdit.ItemTemplate时它可以工作,但仅适用于Combobox中的Items,而不适用于所选的。一旦我应用了DisplayTemplate,它就会崩溃,并且错误无法转换类型" DevExpress.Xpf.Grid.EditGridCellData"到" System.Enum"。
<dxg:GridControl ItemsSource="{Binding SampleList}">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="Name"
FieldName="Name"/>
<dxg:GridColumn Header="Beschreibung"
FieldName="Description"/>
<dxg:GridColumn Header="Kategorie"
FieldName="Category">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<dxe:ComboBoxEdit ItemsSource="{Binding DataContext.CategoryList, ElementName=LicenseContainerRoot}"
IsTextEditable="False"
Name="PART_Editor">
<dxe:ComboBoxEdit.DisplayTemplate>
<ControlTemplate>
<TextBlock Text="{Binding Converter={StaticResource EnumDescriptionConverter}}" />
</ControlTemplate>
</dxe:ComboBoxEdit.DisplayTemplate>
<dxe:ComboBoxEdit.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource EnumDescriptionConverter}}" />
</DataTemplate>
</dxe:ComboBoxEdit.ItemTemplate>
</dxe:ComboBoxEdit>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
</dxg:GridControl>
答案 0 :(得分:0)
看来,调用转换器的可用数据上下文是EditGridCellData实例。你正在寻找EditGridCellData的DataObject属性中的枚举吗?
如果你有EnumDescriptionConverter的源代码,你可以在EnumDescriptionConverter.Convert上放置一个调试器断点(并确定传递的数据类型)。