wpf - 将枚举数据绑定(bind)到 WPF + MVVM 中的 ComboBox

标签 wpf data-binding mvvm combobox enums

我已阅读 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/

相关文章:

wpf - 如何在 WPF XAML 中的多重绑定(bind)中使用 stringformat

android - 如何使用 android 中的数据绑定(bind)从 EditText 获取按钮单击的值?

c# - 如何创建可以显示不同类型对象的 C# WPF DataGrid?

wpf - MVVM模板的好例子

wpf - 如何将可拖动的 wpf 弹出窗口设置为关闭后的原始位置?

wpf - 公开依赖项属性

apache-flex - 绑定(bind)到对象属性

c# - Winforms 将枚举绑定(bind)到单选按钮

javascript - 根据输入值启用按钮

wpf - 表用户控件不显示