在数据网格中绑定枚举属性的最佳方法

2024-06-28

将枚举属性绑定到数据网格的最佳方法是什么。当前我正在使用公共属性并从那里返回枚举名称还有其他方法吗?

枚举

public enum enStatus
{
    Draft = 1,
    Published = 2,
    Started = 3,
    Completed = 4
}

Model

class ModelA
{
  private int statudId;
  public string Status {  get { return Enum.GetName(typeof(enStatus),statudId); }
}

DataGrid

<DataGrid Name="dataGrdAssignments" Style="{StaticResource dataGridManageScreens}" SelectedCellsChanged="dataGrdAssignments_SelectedCellsChanged">
      <DataGrid.Columns>
        <DataGridTextColumn Header="Status" Width="150" Binding="{Binding Status}" ElementStyle="{StaticResource gridElementStyle}" EditingElementStyle="{StaticResource gridEditElementStyle}">
        </DataGridTextColumn>
      </DataGrid.Columns>
</DataGrid>

您的方法有效,但我更喜欢使用绑定转换器来清理 ViewModel。

public class EnumConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return ((Enum)value).ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return  null;
    }
}

在你的 XAML 中,类似这样:

Binding="{Binding Status, Converter="{StaticResource ResourceKey=enumConverter}}" 

不要忘记在 xaml 文件的资源部分中声明您的“enumConverter”(或者您决定如何命名它)。

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

在数据网格中绑定枚举属性的最佳方法 的相关文章

  • 什么可能导致 sock send() 命令上的“资源暂时不可用”

    什么会导致Resource temporarily unavailable套接字上的错误send 命令 套接字设置为AF UNIX SOCK STREAM 它在大多数情况下都有效 但偶尔会出现此错误 套接字的接收端似乎工作正常 我知道这不是
  • 反序列化 GUID 数组时出现 JSON.NET 异常

    我正在使用 JSON NET 反序列化从浏览器发送的 AJAX HTTP 请求 并且在使用 Guid 作为参数的 Web 服务调用时遇到问题 当我使用内置的 NET 序列化器时 这工作得很好 首先 流中的原始字节如下所示 System Te
  • 使用和重载基类的模板成员函数?

    下面 构造Y超载X的成员函数f 两个重载都是模板函数 但采用不同的参数 typename and int 明确指定 struct X template
  • 从 WatchOS 捕获 Apple Watch 的型号标识符

    似乎没有任何记录的官方方法可以从手表应用程序获取 Apple Watch 模型 但有一篇文章显示了特殊用途sysctlbyname 如何确定Apple Watch型号 https stackoverflow com questions 49
  • 在 Windows 应用商店应用程序 (Win 8.1) 中使用 MIDI

    我的目标是在 Windows 应用商店应用程序中接收 MIDI 消息 微软提供了一个名为Microsoft WindowsPreview MidiRT 作为 nuget 包 我设法获得了 MIDI 端口 但是MessageReceived尽
  • boost::noncopyable 是如何工作的

    我在 C 实践中偶然发现了两个愚蠢的问题 据我所知 c 中的复制构造函数和赋值运算符不是继承的 那么 boost noncopyable 在这种情况下如何帮助禁止这些东西呢 class X private boost noncopyable
  • 我想要 Linux 上的 C 函数来收集核心转储而不终止进程

    abort 确实收集核心转储 但我不希望进程终止 dump core 收集核心转储 但在内核空间中 用户空间中是否有与 dump core 等效的函数 自己做的一个简单方法是fork进程 创建父进程的完整副本 并调用abort来自子进程 子
  • 在 C 中使用相等运算符 == 比较两个字符串是否相等 [重复]

    这个问题在这里已经有答案了 int main int argc argv if argv 1 hello printf True n else printf False n myProg hello False 为什么 我意识到strcmp
  • 在 C 中使用模板函数的最短示例?

    我如何处理函数echo tpl可以采取1类型参数int or string 然后打印出来 C没有模板 我认为你能做的最好的事情就是使用联合或让函数具有不同的名称 后一种具有不同名称的方法是准标准方法 例如fabs fabsf fabsl a
  • C++ 局部变量销毁顺序

    C 11 中是否存在局部变量释放的定义顺序 更简洁地说 同一作用域中两个局部变量的析构函数的副作用将以什么顺序变得可见 e g struct X X do something int main X x1 X x2 return 0 Is x
  • C# 中的 memcpy 函数 [重复]

    这个问题在这里已经有答案了 可能的重复 C memcpy 等效项 https stackoverflow com questions 510971 c memcpy equivalent 相当于什么memcpyC 中的函数 正如已经说过的
  • 如何重命名 MacOS/X 程序中的程序名称菜单标签?

    我有一个在 MacOS X 下运行的基于 Qt 的 GUI 程序 我希望能够更改该程序的第一个菜单标题的标签 即此屏幕截图中用红色圈出的标签 有没有一种编程方法可以做到这一点 假设不存在基于 Qt 的解决方案 则 Objective C 本
  • 编译器错误? g++ 允许可变大小的静态数组,除非函数是模板化的

    下面的代码演示了我无法解释的 gcc 4 6 2 的行为 第一个函数声明一个 vec t 类型的静态数组 其中 vec t 是 unsigned char 的 typedef 别名 第二个函数是相同的 只是 vect t 的类型是模板参数
  • 网页上的富文本编辑器

    我正在尝试在我的网页中添加一个富文本编辑器 用户可以在其中撰写评论并格式化他们所写的内容 类似于我们在此网站上撰写帖子的编辑器 谁能指出我关于此的正确方向 任何可以帮助我构建这样一个组件的教程 我还想要一个免费的产品 忘记之前提到 类似的东
  • 如何使用 SonarQube 的 C# 插件设置 FxCop 安装路径

    我正在尝试使用 SonarQube C 插件分析 NET C 项目 从C Plugin 3 0开始 即使sonar project properties中的 sonar fxcop mode skip FxCop也会自动执行 所以我将FxC
  • 如何使用 Dictionary 属性序列化对象?

    在下面的示例代码中 我得到了这个error 元素 TestSerializeDictionary123 Customer CustomProperties 呕吐型 System Collections Generic Dictionary
  • 如何隐藏鼠标光标?

    我想问是否有人可以为我提供一个 C 代码 在其中我可以在按下特定键时隐藏 显示鼠标指针 我发现一些只为 TURBO C 编写的代码 它们都不能使用 dev c 甚至 Visual c 编译和运行 我尝试运行在 Dev C 中找到的代码 但我
  • 如何在控制台应用程序中创建事件循环/消息管道?

    我想创建一个注册了一些事件的控制台应用程序 问题是这些事件永远不会被触发 在这种特殊情况下Windows 窗体 http en wikipedia org wiki Windows Forms我应该调用的应用程序Application Ru
  • 如何获取字典元素的相对位置?

    我有下一个 C 代码 Dictionary
  • 使用 CRTP 模式时继承中的不明确方法

    我正在定义一个DoubleWrapper类继承自两个 CRTP 基类 Ratioable and Divable 两者都定义operator 具有不同的签名 T operator double const scalar const retu

随机推荐

  • 当c的控制台使用c或c++运行时禁用键盘按键

    我想在程序运行时禁用键盘 这意味着没有人可以使用 alt F4 等 我如何在 Windows 操作系统中使用 c 使其成为可能 Handle WM SYSKEYUP WM SYSKEYDOWN并返回0 这是处理这些消息的 WndProc L
  • Android 点击列表视图

    我有一个包含 15 个项目的列表视图 当我单击任何项 目时 我想更改屏幕 意图 如何更改 Android 中所选项目的活动 有教程或者源码吗 您可以使用ListView s setOnItemClickListener 并在此方法的实现中启
  • 在 Zend Framework 中设置视图缩进

    在 Zend Framework 中 可以为 headMeta headLink 等设置缩进 我喜欢这个 我喜欢东西整齐 所以 现在我想在布局 phtml文件 导致视图脚本中的每个新行都用 X 制表符缩进 这是行不通的 有没有办法在 Zen
  • 如何在 Linux 上取消焦点(模糊)Python-gi GTK+3 窗口

    我想做什么以及为什么 我希望我的窗口取消聚焦 因此选择了上一个聚焦的窗口 为什么 我想与先前选择的窗口 来自其他程序 进行交互 我当前的计划是 取消窗口焦点 使用libxdo模拟击键 然后再次聚焦我的窗口 我的窗口可以设置在顶部 以帮助避免
  • 收集实时 GC 指标 - Golang

    Go 中是否有一种简单的方法来获取有关 GC 和堆大小的信息 以便将它们公开给监控仪表板 我查看了运行时包 但似乎没有任何东西可以做到这一点 理想情况下 这不需要任何开销 例如在分析模式下运行应用程序等 但应该做好生产准备 您可以使用GOD
  • 从多个表插入表

    嘿 我有一个连接表 连接两个不相关的表 两个表都有ID的 我需要选择ID从每个表中使用WHERE具有不同的值 例如这就是我的看法 INSERT INTO c aID bID VALUES SELECT a ID WHERE a Name M
  • MacOS 上的 Java 安装:Apt Commando 不起作用 [重复]

    这个问题在这里已经有答案了 我已经在MacBook Catalina 10 15 7 上安装了最新版本的JAVA jdk 15 0 1 osx x64 bin dmg 当我尝试使用 JAVA 使用以下命令安装 PUPPET MASTER 时
  • 使用列命令时出现 Bash 错误:“列:行太长”

    当我使用输入文件键入此列命令时 出现以下错误 column t text txt gt output column line too long column line too long column line too long column
  • Bootstrap 下拉按钮名称在单击时发生变化

    我正在使用下拉按钮 4 个按钮 来过滤项目中的内容 并且我希望按钮名称更改为选定的 这样用户就不会忘记他 她在哪里 见图 这怎么可能 提前谢谢 这是pen http codepen io aktuna pen FqKjb 您可以使用 jQu
  • 将 Assembla 托管的 SVN 存储库备份到 Windows

    现在我的所有文件都使用 Assembla com 的免费托管 svn 存储库进行托管 我想将所有存储库下载到本地计算机以将它们存储为备份 是否有任何为 Windows 构建的应用程序可以让我指向 svn 存储库并下载文件来备份它们 或者有更
  • 从 Bash 中的字符串中删除固定前缀/后缀

    我想从字符串中删除前缀 后缀 例如 给定 string hello world prefix hell suffix ld 我如何得到以下结果 o wor prefix hell suffix ld string hello world f
  • 颤动 NO_RENEGOTIATION(ssl_lib.cc:1725)错误 268435638

    我不确定为什么我请求的这个 API 仅针对 dart 抛出此错误 由于某种原因 当我尝试发出 POST 请求时 dart 会抛出此错误 未处理的异常 NO RENEGOTIATION ssl lib cc 1725 错误268435638
  • 升级pip有什么用?

    虽然 pip 用于从 PyPI 安装和升级其他 Python 包 但您能帮我理解为什么需要升级 pip 本身吗 我正在开发一个新的 python 项目 并将使用 pip 来安装依赖项 但是 我不确定在安装其他软件包之前是否需要将 pip 升
  • 为什么安装成功后无法导入pandas?

    我已经使用命令 pip3 4 install pandas 安装了 pandas Successfully installed pandas python dateutil pytz numpy six Cleaning up root h
  • 来自 CPU/内存使用百分比的 Grafana 警报

    我想通过 Grafana 发出警报 定义 CPU 或内存使用率是否高于阈值 比方说 85 它将触发警报 我现在拥有的是时间序列限制CPU 内存 kube pod container resource limits namespace nam
  • Tweepy 为什么我收到搜索 AttributeError [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我运行代码时 我收到以下错误消息 该代码应返回与指定查询匹配的推文 Twitter 屏蔽了搜索属性吗 错误信息 for twee
  • 如何使用Dapper获取存储过程的返回值?

    我在 asp net mvc 4 项目 net f w 4 6 1 中使用 Dapper 使用 sql server 2016 Express
  • 如何使用 AOS 触发向上滚动动画

    我正在使用 AOS 库 css 和 js 它可以帮助我创建每次用户向下滚动页面时触发的动画 我有一个问题 页面的顶部元素仅运行一次 因为 AOS 仅在向下滚动时触发它 我希望我的所有动画在每次用户向下和向上滚动时运行 我怎样才能做到呢 这是
  • PostgreSQL 中有类似 SSIS 的功能吗?

    我们正在使用SSIS SQL Server 集成服务 http msdn microsoft com en us library ms141026 aspx在 SQL 2008 R2 中 将数据库表从 30 多个数据库 在 SQL Serv
  • 在数据网格中绑定枚举属性的最佳方法

    将枚举属性绑定到数据网格的最佳方法是什么 当前我正在使用公共属性并从那里返回枚举名称还有其他方法吗 枚举 public enum enStatus Draft 1 Published 2 Started 3 Completed 4 Mode