WPF DataGridComboboxColumn未获取绑定到枚举的属性(来自数据库的值)

本文关键字:数据库 属性 WPF 获取 绑定 枚举 DataGridComboboxColumn | 更新日期: 2023-09-27 17:59:50

我在获取要在DataGridComboBoxColumn中显示的属性时遇到问题。但是,当从这个组合框中选择一个值时,setter将被更新,并且在保存时数据库将发生更改。(所以基本上它的工作界面->模型,但我不认为模型->界面..)

基本上,我有一个绑定到枚举的DataGridComboBoxColumn。以下是我认为问题所在的XAML。

<DataGrid x:Name="dgProductItem" 
          ItemsSource="{Binding ProductVersion.ProductItems}"
<DataGridComboBoxColumn Header="Deployment Type" 
        SelectedItemBinding="{Binding DeploymentType, Mode=TwoWay}"
        SelectedValuePath="DeploymentType" Width="120">

下面是DataGridComboBoxColumn 的其余代码

<DataGridComboBoxColumn.ElementStyle>
    <Style TargetType="ComboBox">
        <Setter Property="ItemsSource"
                Value="{Binding Source={StaticResource DeploymentTypeEnum}}"/>
        <Setter Property="HorizontalAlignment" Value="Center"></Setter>
    </Style>
</DataGridComboBoxColumn.ElementStyle>

<DataGridComboBoxColumn.EditingElementStyle>
    <Style TargetType="ComboBox">
        <Setter Property="ItemsSource"
                Value="{Binding Source={StaticResource DeploymentTypeEnum}}"/>
    </Style>
</DataGridComboBoxColumn.EditingElementStyle>

但正如我所说,当用户从组合框中选择一个值时,setter会被更新,所以我认为它不会太远

这是物业代码。

public DeploymentType DeploymentType
{
    get
    {
        return m_DeploymentType;
    }
    set
    {
        m_DeploymentType = value
        PropertyChanged("DeploymentType")
    }
}

任何帮助都是有用的。

感谢

WPF DataGridComboboxColumn未获取绑定到枚举的属性(来自数据库的值)

要获得列表,您应该有一种方法从枚举类型中提取

XAML

将其设置为资源级别:

    <ObjectDataProvider x:Key="DeploymentTypeEnum" MethodName="GetValues"
                        ObjectType="{x:Type System:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="local:DeploymentType"/>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>

不要忘记在xaml 中添加正确的名称空间

         xmlns:local="clr-namespace:ProjectNamespace"
         xmlns:System="clr-namespace:System;assembly=mscorlib"