0

我正在尝试将转换器应用于 ComboBoxEdit 的显示项目

当我只使用 ComboBoxEdit.ItemTemplate 时,它​​可以工作,但仅适用于 Combobox 内的项目,而不适用于所选项目。一旦我应用 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>
4

1 回答 1

0

似乎调用转换器的可用数据上下文是一个 EditGridCellData 实例。您在 EditGridCellData 的 DataObject 属性中寻找的枚举是什么?

如果您有 EnumDescriptionConverter 的源,您可以在 EnumDescriptionConverter.Convert 上放置一个调试器断点(并确定正在传递的数据类型)。

于 2017-01-18T15:55:22.837 回答