0

我的 WPF 应用程序有一个扩展,我在回答 StackOverflow 上的一个问题时找到了该扩展,它为ComboBox枚举创建了选择。我不记得我是从哪个帖子得到的,但因为这不是问题,所以无关紧要。

我在我的 WPF 应用程序中为我们产品的后端使用了一个 DLL。在这个 DLL 中有一个枚举,我希望用户从使用 aComboBox和上述扩展名中进行选择。我在 XAML 中定义了正确的 xmlns。

问题是我的枚举是另一个类的子类。也就是说,它的定义如下:

public class MyClass {

    . . .

    public enum MyEnum { . . . }

    . . .
}

我认为 XAMLComboBox应该是这样的:

<ComboBox ItemsSource="{Binding Source={cs:Enumeration {x:Type ns:MyClass.MyEnum}}}" 
          . . . />

当我键入“MyClass”时,当我键入句点以将父类名称与子类型名称分开时,Intellisense 只是再次提供上层类名称。如果我只是在句点之后键入子类名称,编译器会给我一个错误:“Type MyClass.MyEnum not found”。

如何正确指定我的枚举名称?

4

2 回答 2

0

我决定对此进行抨击,并使用与加载ComboBox从数据库中提取的选项相同的机制。那是:

  1. ObservableCollection在我的视图模型类中创建了一个包含选项的
  2. ObservableCollection我在视图模型类的构造函数中填充了一个名为ItemChoice. 声明如下:

    公共 ObservableCollection<ItemChoice<MyClass.MyEnum>> EnumChoices { get; 放;

  3. ComboBox's ItemsSource我将属性绑定到EnumChoicesXAML 中的集合。

  4. 在视图模型的构造函数中,我实例化EnumChocies集合并用新对象加载它,ItemChoice枚举中的每个选择一个。

这一切都有效。我现在可以继续处理代码的其他问题。

于 2012-11-30T19:16:19.650 回答
0

尝试使用:

{x:Type ns:MyClass+MyEnum}

http://neilmosafi.blogspot.co.uk/2007/08/dec-06-wpfxaml-xtype-and-nested-classes.html

于 2012-11-30T17:14:08.870 回答