我已经阅读了这个与WPF中将枚举属性绑定到ComboBox的问题相关的SO帖子,由于答案中的链接,它非常有用。现在我只是遇到一个问题,就是如何使用MVVM模式使其全部正常工作。
基本上,我放在那里的任何东西都无法编译。有人知道如何克服这个小障碍吗?
假设我有我的ViewModel,它(甚至Model)可以定义一个枚举:
public enum MyTypes { Type1, Type2, Type3 };
我希望将这个内容与我的GUI中的ComboBox进行数据绑定。根据这篇文章,我需要使用ObjectDataProvider来调用MyTypes上的Enum.GetValues()方法。因此,我必须将MyTypes作为MethodParameter传递。但是如何传递类型呢?我尝试了各种方法,比如在XAML中添加命名空间的引用:
<Window.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="TipHandlingValues">
<ObjectDataProvider.MethodParameters>
<!-- what goes here? it's totally wrong. -->
<my:MyTypes />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
基本上,我放在那里的任何东西都无法编译。有人知道如何克服这个小障碍吗?