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")
}
}
任何帮助都是有用的。
感谢
要获得列表,您应该有一种方法从枚举类型中提取
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"