C# 将DataGridComboxColumn绑定到类内声明的枚举
我有一个绑定到数据库的数据网格: 我希望性别列是一个组合框,其选定值来自数据库。性别是成员类内的枚举:C# 将DataGridComboxColumn绑定到类内声明的枚举,c#,wpf,datagrid,datagridcomboboxcolumn,C#,Wpf,Datagrid,Datagridcomboboxcolumn,我有一个绑定到数据库的数据网格: 我希望性别列是一个组合框,其选定值来自数据库。性别是成员类内的枚举: namespace Elysium.model { class Member { public enum MemberType { Standard, Premium } public enum Status { Inactive, Active } public enum Gender { Male, Female } 我
namespace Elysium.model
{
class Member
{
public enum MemberType { Standard, Premium }
public enum Status { Inactive, Active }
public enum Gender { Male, Female }
我尝试以以下方式绑定它,但它给了我一个错误,即名称空间中未定义性别,或者当我这样做时不允许嵌套:
<ObjectDataProvider x:Key="genderEnum" MethodName="GetValues" ObjectType="{x:Type LocalValueEnumerator}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:Gender" ></x:Type>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
项目结构:
应将
对象类型设置为系统。枚举
:
<ObjectDataProvider x:Key="genderEnum"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:Gender" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
用法:
<DataGridComboBoxColumn x:Name="genderColumn"
ItemsSource="{Binding Source={StaticResource genderEnum}}" ... />
它给了我一个错误,即名称空间中不存在性别。性别在成员类中,当我执行成员操作时,性别表示不支持嵌套类型。我可以通过重新启动visual studio来删除错误。组合框现在有性别值,但所选值为空,每当我选择一个值并单击外部时,该值就会消失。@MarijKhan:这是另一个问题。请提出新问题并结束此问题。
<ObjectDataProvider x:Key="genderEnum"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:Gender" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<DataGridComboBoxColumn x:Name="genderColumn"
ItemsSource="{Binding Source={StaticResource genderEnum}}" ... />