【问题标题】:MVVM Bind Enum and Enum description To Devexpress LookUpEditMVVM 绑定枚举和枚举描述到 Devexpress LookUpEdit
【发布时间】:2014-09-16 22:33:18
【问题描述】:

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

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

【问题讨论】:

    标签: wpf xaml mvvm enums devexpress


    【解决方案1】:

    尝试使用 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>
    

    【讨论】:

    • 这显示了两列 id 和 value。我想展示价值和描述。描述将来自 enumToStringConverter。我也想知道 SelectedItem 将如何工作。
    猜你喜欢
    • 1970-01-01
    • 2015-12-30
    • 2010-10-09
    • 1970-01-01
    • 2020-08-17
    • 2012-09-23
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多