我在获取要在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")
}
}
任何帮助都会有用。
由于
答案 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"