我已阅读 this very related question here on SO ,并且由于答案中的链接而非常有帮助。我现在只是遇到了一个问题,现在要采取额外的步骤并使其全部使用 MVVM 模式。
假设我有我的 ViewModel,它(甚至模型)可以定义一个枚举:
public enum MyTypes { Type1, Type2, Type3 };
我想将它数据绑定(bind)到我的 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>
我放在那里的几乎什么都不会编译。有谁知道如何克服这个小障碍?
最佳答案
最简单的方法是在代码中添加这一行:
DataContext = Enum.GetValues(typeof(MyTypes));
其他选项是添加从枚举中生成值列表的标记扩展。
关于wpf - 将枚举数据绑定(bind)到 WPF + MVVM 中的 ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608300/