MVVM绑定枚举和枚举说明Devexpress LookUpEdit

时间:2014-09-16 22:33:19

标签: wpf xaml mvvm enums devexpress

我想将Enum和Enum描述绑定到devexpress dxg:LookUpEdit但无法执行此操作。我可以使用ComboBox来获得相同的结果,但我希望在查找编辑的网格中显示。 这就是代码的样子。我有一个转换器,它将Enum转换为枚举描述。

 <dxg:LookUpEdit Name="lookUpEdit" SelectedItem="{Binding SelectedStatus}"
                                        ItemsSource="{Binding Statuses}"
                                        AutoComplete="True" AutoPopulateColumns="False" PopupWidth="250">
                    <dxg:LookUpEdit.PopupContentTemplate>
                        <ControlTemplate>
                            <dxg:GridControl Name="PART_GridControl">
                                <dxg:GridControl.Columns>
                                    <dxg:GridColumn Header="Filter" FieldName="Name" Width="100" />
                                    <dxg:GridColumn Header="Description" Width="100">
                                        <dxg:GridColumn.CellTemplate>
                                            <DataTemplate>
                                            <TextBlock>
                                              <Run Text="{Binding Mode=OneTime, Converter={StaticResource EnumToStringConverter}}"></Run>
                                            </TextBlock>
                                        </DataTemplate>
                                        </dxg:GridColumn.CellTemplate>
                                    </dxg:GridColumn>
                                </dxg:GridControl.Columns>
                                <dxg:GridControl.View>
                                    <dxg:TableView AllowEditing="False" ShowGroupPanel="False" />
                                </dxg:GridControl.View>
                            </dxg:GridControl>
                        </ControlTemplate>
                    </dxg:LookUpEdit.PopupContentTemplate>
                </dxg:LookUpEdit>

1 个答案:

答案 0 :(得分:0)

尝试使用EnumItemsSource,如下所示(对于此源,您可以设置自定义转换器来转换枚举值):

<Window.Resources>
    <local:EnumToStringConverter x:Key="enumToStringConverter"/>
</Window.Resources>
...
<dxg:LookUpEdit HorizontalAlignment="Stretch" VerticalAlignment="Top" 
                AutoPopulateColumns="False"
                ItemsSource="{dxe:EnumItemsSource EnumType={x:Type local:MyEnum}, NameConverter={StaticResource enumToStringConverter}, UseNumericEnumValue=True}"
                >
    <dxg:LookUpEdit.PopupContentTemplate>
        <ControlTemplate>
            <dxg:GridControl Name="PART_GridControl">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn FieldName="Id" Header="ID"/>
                    <dxg:GridColumn FieldName="Value" Header="DESCRIPTION"/>
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:TableView AllowEditing="False" ShowGroupPanel="False"/>
                </dxg:GridControl.View>
            </dxg:GridControl>
        </ControlTemplate>
    </dxg:LookUpEdit.PopupContentTemplate>
</dxg:LookUpEdit>