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

时间:2014-04-24 17:41:12

标签: c# wpf xaml datagrid enums

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

基本上我有一个与Enum绑定的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>

但正如我所说,当用户从组合框中选择一个值时,设置器将会更新,所以我不认为它太过分了。

这是属性代码。

public DeploymentType DeploymentType
{
    get
    {
        return m_DeploymentType;
    }

    set
    {
        m_DeploymentType = value
        PropertyChanged("DeploymentType")
    }
}

任何帮助都会有用。

由于

1 个答案:

答案 0 :(得分:0)

要获取列表,您应该有一种从枚举类型

中提取的方法

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"