如何在 Winforms 中将枚举转换为布尔值以进行数据绑定?

2024-04-20

是否有可能做到这一点?我需要使用:

this.ControlName.DataBindings.Add (...)

所以我除了绑定我之外无法定义逻辑enum值对一个bool.

例如:

(DataClass) Data.Type (enum)

EDIT:

我需要绑定Data.Type这是复选框的枚举Checked财产。所以如果Data.Type is Secure, 我想要SecureCheckbox通过数据绑定进行检查。


Winforms 绑定生成两个重要且有用的事件:Format and Parse.

当将数据从源拉入控件时,会触发 format 事件;而当将数据从控件拉回数据源时,会触发 Parse 事件。

如果您处理这些事件,您可以在绑定期间来回更改/重新输入值。

例如,以下是这些事件的几个示例处理程序:

 public static void StringValuetoEnum<T>(object sender, ConvertEventArgs cevent)
 {
      T type = default(T);
      if (cevent.DesiredType != type.GetType()) return;
      cevent.Value = Enum.Parse(type.GetType(), cevent.Value.ToString());
 }

 public static void EnumToStringValue<T>(object sender, ConvertEventArgs cevent)
 {
      //if (cevent.DesiredType != typeof(string)) return;
      cevent.Value = ((int)cevent.Value).ToString();
 }

这是附加这些事件处理程序的一些代码:

 List<NameValuePair> bts = EnumHelper.EnumToNameValuePairList<LegalEntityType>(true, null);
 this.cboIncType.DataSource = bts;                
 this.cboIncType.DisplayMember = "Name";
 this.cboIncType.ValueMember = "Value";

 Binding a = new Binding("SelectedValue", this.ActiveCustomer.Classification.BusinessType, "LegalEntityType");
 a.Format += new ConvertEventHandler(ControlValueFormatter.EnumToStringValue<LegalEntityType>);
 a.Parse += new ConvertEventHandler(ControlValueFormatter.StringValuetoEnum<LegalEntityType>);
 this.cboIncType.DataBindings.Add(a);

因此,在您的情况下,您只需为格式事件创建一个 SecEnum to Bool 处理程序,并在其中执行类似以下操作:

 SecEnum se = Enum.Parse(typeof(SecEnum), cevent.Value.ToString());
 cevent.Value = (bool)(se== SecEnum.Secure);

然后在解析过程中反转它。

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

如何在 Winforms 中将枚举转换为布尔值以进行数据绑定? 的相关文章

  • 通过 Office API 将多个 Word 文档保存为 HTML

    我有大量的Word文档需要解析 由于它们都是从同一个模板创建的 我认为最好的方法是将它们保存为 HTML 文件并解析 HTML 本身 虽然将单个 Word 文档保存为 HTML 相当容易 但我还没有找到从 Word 内部执行批量过程的方法
  • ToLookup 是否强制立即执行序列

    我正在调查可枚举 ToLookup将可枚举序列转换为字典类型数据结构的 API 更多详情可在这找到 https msdn microsoft com en us library system linq enumerable tolookup
  • 如何在 vb.net 中更改 DateTimePicker 的日期格式

    如何更改 vb net 中 DateTimePicker 的日期格式 以便日期以 dd mm 1990 格式显示 没有任何时间值 我尝试将格式更改为 短 虽然这提供了我需要的日期格式 但它不会删除时间 您需要将 DateTimePicker
  • 删除 QComboBox“下拉”动画

    我正在使用 Qt 4 8 并且想在单击 QComboBox 时摆脱 下拉 动画 我也想稍微移动一下 到目前为止 我一直在考虑重新实现 showPopup 和 hidePopup 但不知道如何使其工作 此外 每次我尝试使用 CSS 进行移动或
  • 有没有办法找到哪些 .NET 类实现了某个接口?

    例如 如果我想查看我的 NET 选项用于实现 IList 或 IDictionary 有没有办法找到它 例如在 MSDN 文档中 我认为可以使用反射器 http www red gate com products reflector
  • 如何BSWAP 64位寄存器的低32位?

    我一直在寻找如何将 BSWAP 用于 64 位寄存器的低 32 位子寄存器的答案 例如 0x0123456789abcdef位于 RAX 寄存器内 我想将其更改为0x01234567efcdab89用一条指令 因为性能 所以我尝试了以下内联
  • 将 dataGridView 绑定到绑定列表并按文本框过滤行

    我正在开发一个 Winforms 应用程序 并且有一个已经绑定到 dataGridView 的对象的 BindingList 我还有一个 过滤器 文本框 如果它们与文本框文本不匹配 我想从 datagridview 行中过滤掉行 我想以某种
  • 更改 RabbitMQ 队列中的参数

    我有一个 RabbitMQ 队列 最初声明如下 var result channel QueueDeclare NewQueue true false false null 我正在尝试添加死信交换 因此我将代码更改为 channel Exc
  • winapi 函数的函数指针 (stdcall/cdecl)

    请有人给我一些为 MS winapi 函数创建函数指针的提示吗 我试图为 DefWindowProc DefWindowProcA DefWindowProcW 创建一个指针 但出现此错误 LRESULT dwp HWND UINT WPA
  • 将数据表传递给存储过程

    我有一个用 C 创建的数据表 using DataTable dt new DataTable dt Columns Add MetricId typeof int dt Columns Add Descr typeof string dt
  • System.Globalization.CultureInfo 不包含 Name 的定义

    我对 System Globalization CultureInfo 类和 System Globalization 命名空间有这个特殊问题 我从具有 CultureInfo 属性的 API 调用返回一个对象 语言 我能够成功地将其在客户
  • 如何使用 html 敏捷包获取自定义标签?

    需要创建摘要 索引 为此我有标签
  • 将 JSON 转换为数据表

    我有以下格式的 JSON id 10 name User add false edit true authorize true view true id 11 name Group add true edit false authorize
  • 如何通过列名检查MySqlDataReader中的NULL?

    我怎样才能检查NULL开放的价值MySqlDataReader 以下不起作用 它总是击中else if rdr GetString timeOut null queryResult Egresstime Logged in else que
  • 指向数组的指针 int (*ptr)[]

    我想了解指向数组的指针如何工作 代码片段 include
  • 从 C++ 检索 Python 类型

    这个问题实际上是以下两个问题的延伸 如何在 Python 中实现 C 类 以供 C 调用 https stackoverflow com questions 9040669 how can i implement a c class in
  • C 中的静态和外部内联函数[重复]

    这个问题在这里已经有答案了 我正在尝试详细了解静态函数和外部函数之间的区别 我知道静态内联函数和外部内联函数之间的基本区别 我的理解如有错误请指正 静态内联函数仅对定义它的翻译单元可见 外部内联函数可以在多个翻译单元中访问 最好在头文件中定
  • exit() 和 abort() 有什么区别?

    在C和C 中 有什么区别exit and abort 我试图在发生错误 不是例外 后结束我的程序 abort http en cppreference com w c program abort退出程序而不调用使用注册的函数atexit h
  • 如何从 dll 导出 C++ 类? [复制]

    这个问题在这里已经有答案了 我有一个有两个重载函数的类 如何从 dll 导出它以及如何由其他 C 类使用它 我的班级是这样的 define DECLDIREXP declspec dllexport define DECLDIRIMP de
  • 如何在 Azure 中调试测试发送?

    I am trying to setup a successfull push notifications between my Net backend and ios client in azure I followed this htt

随机推荐

  • Python CSV 模块 - 引号丢失

    我有一个 CSV 文件 其中包含这样的数据 15 I 2 41301888 BYRNESS RAW BYRNESS VILLAGE NORTHUMBERLAND ENG 11 I 3 41350101 2 2935 2 2008 01 09
  • OpenCV:何时使用 GridAdaptedFeatureDetector?

    我正在尝试制作一个基于描述符的检测器 我正在使用 OpenCV 我发现有很多特征类型和描述符类型 以及匹配器类型 更多我还看到可以有诸如网格或金字塔之类的组合类型作为特征类型 我还没有找到对它们的很好的解释 除了金字塔 它说这很好 对于本质
  • 容器“Android 依赖项”引用不存在的库 appcompat_v7.jar”

    我知道这个问题已被问过很多次 但不幸的是找不到任何解决方案 所以这里是 The container Android Dependencies references non existing library C Users Zain ul a
  • 替代RelativeLayout中的weightSum?

    我有四个TextView我想要在水平线上均匀分布的项目 这意味着一行中的所有空间必须均匀地被TextView项目 像这样 以前 我使用 LinearLayout 来实现此目的 我将weightSum 设置为4 并将layout weight
  • 单个构建步骤的 TeamCity 构建日志

    当 teamcity 执行 MSBuild 步骤时 构建日志具有可折叠 可扩展的层次结构 我有一个很大的构建步骤 它运行一个 powershell 脚本 生成的构建日志很大 需要很长时间才能加载 有没有一种方法可以让 teamcity 将单
  • 使用python sklearn增量训练随机森林模型

    我使用下面的代码来保存随机森林模型 我正在使用 cPickle 保存训练后的模型 当我看到新数据时 我可以增量训练模型吗 目前 训练集大约有2年的数据 有没有办法再训练两年并将其 某种程度上 附加到现有保存的模型中 rf RandomFor
  • 如何在没有 SSRS 服务器的情况下使用报表查看器控件执行 .rdl 报表?

    我正在尝试设置一个网页 用户可以在其中选择要运行的 rdl 文件 它将打开报表查看器控件 ASPX 加载报表定义文件 运行它并显示报表 到目前为止 我发现 本地 报告只能接受来自代码的数据源 因此您必须手动执行数据库代码 这将很痛苦 因为报
  • 为什么这个简单的 C# 试用不起作用 [重复]

    这个问题在这里已经有答案了 这会产生条纹而不是点 为什么 我正在尝试绘制单个像素 还尝试了另一种方法 使用 fillrectangle 它也没有给出所需的结果 得到的是条形而不是点 protected override void OnPai
  • 如何在异步代码中处理 CPU 密集型任务

    我正在做一些需要异步方法的繁重处理 我的一个方法返回一个字典列表 在将其添加到另一个可等待对象之前需要对其进行大量处理 IE def cpu bound task here record some complicated preproces
  • ExoPlayer - 奇怪的阿拉伯语/波斯语字幕格式

    我正在尝试创建一个带字幕的视频播放器 除了一件事之外 一切都已设置并正常工作 我的阿拉伯语字幕没有正确显示 它们的符号和东西看起来很奇怪 像这样 这是我的带有字幕的 ExoPlayer 设置 Uri srt Uri parse http d
  • Exchange Web 服务:UseDefaultCredentials 属性

    这个微软页面 http msdn microsoft com en us library exchange ff597939 28v exchg 80 29 aspx表示通过将 UseDefaultCredentials 属性设置为 tru
  • 为方法创建 IObservable 的好方法是什么?

    比方说 我们有一堂课 public class Foo public string Do int param 我想创建一个可观察的值 这些值是由Do方法 一种方法是创建一个正在调用的事件Do并使用Observable FromEvent创建
  • 如何使用 Spring 注入键值属性文件?

    我有一个键值属性文件 其中包含错误代码及其错误消息 我想在应用程序启动时注入此文件 以便我可以在注入的属性上进行查找 而无需读取该文件 下面只是伪代码 里面有什么吗Spring可以创建这个设置吗 Value location classpa
  • 如何解决 AutoMapper 错误? (堆栈溢出异常!)

    我在用自动映射器 http automapper codeplex com EF 实体 gt POCO 用于以下类 public class Category public int CategoryID get set public str
  • 如何避免 fread() 将日期信息导入为 IDate?

    我最初编写了一个脚本 该脚本通过约 70k 次迭代进行计算 我使用 rbind 将结果 缝合 在一起 1 次迭代可能会产生 0 到多行的结果 所以我不认为预先分配输出会使感觉 为了加快速度 我将其分成 4 个单独的脚本 每个脚本在单独的会话
  • 为什么 wm_concat 在这里不起作用?

    我有这个查询 SELECT OBJECT ID from cr object group entries vw where object group id IN SELECT ITEM FROM TABLE CR FN SPLIT STRI
  • Java Swing 取消无限循环

    我在 Swing 中遇到了无限循环问题 做了一些研究并遇到了 SwingWorker 线程 但不太确定如何实现它们 我已经拼凑了一个简单的程序来显示问题 一个按钮启动无限循环 我希望另一个按钮停止它 但当然 由于 Swing 单线程问题 另
  • 选择一个元素及其所有后代元素

    选择一个元素and它的所有后代元素 media media color f00 我是否只能使用一个选择器 而不是用逗号分隔两个选择器 我正在寻找一种更有效的方式来输入此内容 With XPath https www w3schools co
  • Swing 中带有小字体的字符串的边界

    关于计算应绘制到 Swing 组件中的字符串的大小 宽度或高度 存在许多 许多 问题 并且提出了许多解决方案 然而 我注意到这些解决方案中的大多数都not对于小字体可以正常工作 下面是一个MCVE https stackoverflow c
  • 如何在 Winforms 中将枚举转换为布尔值以进行数据绑定?

    是否有可能做到这一点 我需要使用 this ControlName DataBindings Add 所以我除了绑定我之外无法定义逻辑enum值对一个bool 例如 DataClass Data Type enum EDIT 我需要绑定Da