将枚举数据绑定到 WPF + MVVM 中的组合框

2024-02-10

我读了这个非常相关的问题在这里 https://stackoverflow.com/questions/58743/databinding-an-enum-property-to-a-combobox-in-wpf,由于答案中的链接,这非常有帮助。我现在遇到的问题是要采取额外的步骤并使其全部适用于 MVVM 模式。

假设我有我的 ViewModel,它(甚至模型)可以定义一个枚举:

public enum MyTypes { Type1, Type2, Type3 };

我想将其数据绑定到 GUI 中的组合框。根据这篇文章,我将使用 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));

其他选项是添加标记扩展,从枚举中生成值列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将枚举数据绑定到 WPF + MVVM 中的组合框 的相关文章

  • ComboBox 内容的自动宽度

    有谁知道如何设置ComboBox内容的宽度自动调整大小 我的意思不是ComboBox本身 只是打开的内容 你不能直接使用它 做一招 首先遍历组合框的所有项目 通过将文本分配给标签来检查每个项目的宽度 然后 每次检查宽度 如果当前项目的宽度大
  • 映射枚举列表

    我有一个名为 UserPermissions 的表 其中通过 userId 与用户表进行 FK 然后是一个用于枚举字符串值的字符串列 我看到的错误是 NHibernate MappingException 表 UserPermissions
  • WPF - 将窗口置于前面

    我有一个 WPF 窗口 我没有关闭它 相反 我执行 Hide 和 Show 它 现在 当我双击记录上网格中的主窗口时 这将触发 Show 窗口 该窗口将始终显示在主窗口后面 我尝试过以下方法 但没有成功 view Show view Act
  • 将一个枚举设置为等于另一个枚举

    我在 2 个不同的对象中有 2 个枚举 我想设置enum在对象 1中等于enum在对象 2 中 这是我的对象 namespace MVC1 public enum MyEnum firstName lastName public class
  • 如何在c# wpf中获取元素的标签?

    我正在尝试使用 WPF 构建一个 GUI 在其中我可以绘制一些基本形状并将它们存储到 xml 文件中 形状是在 xaml 文件中设计的 我为每个形状添加了标签 现在我想在代码中获取它们的标签值 并将其作为属性存储在输出 xml 文件中 例如
  • 如何在不监听框架控件中定义的任何鼠标事件的情况下检测鼠标单击?

    是否可以在不侦听框架控件中定义的任何鼠标事件的情况下检测鼠标单击 我的意思是 我不想编写如下代码 control MouseLeftButtonDown this HandleMouseLeftButtonDown 但我想知道用户是否点击屏
  • 如何正确绑定和更新 Xamarin.Forms ListView?

    使用 MVVM 模式 我有一个模型 ViewModel 和视图 其中包含一个 ListView ListView 绑定到 ViewModel 的成员 该成员是 Model 类的 ObservableCollection 我可以使初始显示的绑
  • 如何循环访问 WPF StackPanel 静态项目?

    可能很容易 但我很难弄清楚这一点 谷歌似乎也没有多大帮助 如何循环遍历 StackPanel 的静态声明元素 无数据绑定 元素在 xaml 中声明 任何帮助表示赞赏 你的意思是StackPanel的孩子们 foreach var child
  • WPF;单击 ListView 中的空白区域时如何取消选择所有选定的项目

    当我有几个 甚至一个 selected items我按简单click在我的空白处ListView 空白 非行 我想取消选择所有选定的项目 这是我取消选择所有项目的功能 private void DeselectAllListViewItem
  • 如何从页面级别获取父框架?

    我有一个带有框架和几页的窗口 加载窗口时 框架导航到欢迎页面 当我单击欢迎页面内的按钮时 我希望父框架导航到另一个页面 为此 我需要从页面级别访问父框架 但我不知道如何执行此操作 我尝试了下面的代码 但它返回 null private vo
  • WPF 组合框如果只有 1 项则自动选择

    我有一个组合框 我绑定到一个可观察的集合 它会发生变化 根据选择的公司 并且大量公司将有一个帐户 项目 因此我想知道制作组合框的最佳方法是什么如果 ItemsSource 中只有 1 个项目 则设置 SelectedItem 否则将其保留为
  • TargetType="controlType" 和 TargetType="{x:Type controlType}" 之间的区别

    在 WPF 中 您可以设置TargetType类型的名称 或者您可以将其设置为 x Type nameOfType 有谁知道有什么区别 没有什么 由于属性类型是Type XAML 解析器知道尝试将您提供的任何内容转换为Type 在其他情况下
  • 打字稿标记的枚举获取值

    我在下面标记了枚举 enum PermissionEnum SU 1 lt lt 0 1 Administrator 1 lt lt 1 2 User 1 lt lt 2 4 对于给定值 6 我怎样才能得到 string gt 管理员 用户
  • 带有 ObservableCollection 和动态过滤器的 Silverlight ListBox

    假设我有这门课 public class MyData public bool IsActive get set public String Data1 get set public String Data2 get set and an
  • Android:枚举与静态最终整数?

    有什么优点 或缺点 enum与拥有一组static final intJava Android 应用程序中的s 是否存在有利于使用其中之一的效率或性能优化 我在意图 requestCodes 之类的上下文中提出这个问题 在 Android
  • 如何在MVVM中实现对话框架构

    我正在开发一个基于 PRISM 框架 Unity Container 的 WPF 4 0 MVVM 应用程序 我想知道在 mvvm 模式中实现对话框的最佳方法是什么 我计划在我的应用程序中使用相当多的东西 所以我想要一些可重用的东西 由于您
  • 如何在 WPF 中实现虚线或点线边框?

    我有一个ListViewItem我正在申请Style到 我想把灰色虚线作为底部Border 我怎样才能在 WPF 中做到这一点 我只能看到纯色画笔 这在我们的应用程序中效果很好 允许我们使用真正的边框而不是乱用矩形
  • 为什么无法将 WPFToolkit DataGrid ItemSsource 绑定到 DataTable?

    In a Telerik控制 我能够绑定DataTable直接到ItemSource 但是当我切换到 Codeplex 时WPFToolkit Datagrid
  • 滚动 X 轴绘图区域 - Silverlight 柱系列

    我有一个工作正常的柱形系列图表 我有一个需要添加的功能 我希望水平滚动能够启用到 x 轴的绘图区域 这是屏幕截图 如果您看到屏幕截图 我有 6 个项目 并且由于项目数量较多 条形图非常细 所以假设如果我有 20 个项目 那么条形图将根本不可
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp

随机推荐