将枚举类型绑定到文本框

2024-04-30

我将 textbox.text 值绑定到枚举类型。 我的枚举看起来像这样

public enum Type
    {

        Active,

        Selected,

        ActiveAndSelected
    }

我不想完成的是在文本框上显示“活动模式”而不是“活动”等等。可以这样做吗?如果我能在 XAML 中完成这一点那就太好了 - 因为我在样式文件 style.xaml 中拥有所有绑定

我试图使用描述属性,但似乎还不够


恕我直言,使用转换器是更好的方法。

您应该做的第一件事是实现一个简单的属性,以便向枚举元素添加一些元数据。这是一个基本示例(为了简单起见,没有国际化):

    public enum StepStatus {
    [StringValue("Not done yet")]
    NotDone,
    [StringValue("In progress")]
    InProgress,
    [StringValue("Failed")]
    Failed,
    [StringValue("Succeeded")]
    Succeeded
}

接下来,您可以编写一个实用程序类,能够使用反射将枚举元素转换为其相应的 StringValue 表示形式。在 Google 中搜索“C# 中的字符串枚举 - CodeProject”,您会找到 CodeProject 关于此的文章(抱歉,我的低声誉不允许我添加链接..)

现在您可以实现一个转换器,将转换简单地委托给实用程序类:

    [ValueConversion(typeof(StepStatus), typeof(String))]
public class StepStatusToStringConverter: IValueConverter {
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture){
        String retVal = String.Empty;

        if (value != null && value is StepStatus) {
            retVal = StringEnum.GetStringValue((StepStatus)value);
        }

        return retVal;
    }

    /// <summary>
    /// ConvertBack value from binding back to source object. This isn't supported.
    /// </summary>
    public object ConvertBack(object value, Type targetType,
        object parameter, CultureInfo culture) {
        throw new Exception("Can't convert back");
    }
}

最后,您可以在 XAML 代码中使用转换器:

<resourceWizardConverters:StepStatusToStringConverter x:Key="stepStatusToStringConverter" />
...
<TextBox Text="{Binding Path=ResourceCreationRequest.ResourceCreationResults.ResourceCreation, Converter={StaticResource stepStatusToStringConverter}}" ... />

检查以下内容page http://www.codeproject.com/KB/WPF/FriendlyEnums.aspx;它给出了一个支持国际化的例子,但基本上原理是一样的。

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

将枚举类型绑定到文本框 的相关文章

  • WPF MVVM将DataTable绑定到DataGrid不显示数据

    我有一个简单的控件 其中包含一个 DataGrid 其中 ItemsSource 绑定到 DataTable 当我填充 DataTable 时 我可以看到 DataGrid 中添加了行 但没有显示任何数据 我没有为此 DataGrid 使用
  • WPF:窗口设置边界

    我在 Windows Forms 中使用 SetBounds 方法而不是 Left Top Width Height 属性分配 因为每次我分配更改位置属性的值时 窗口都会更改其位置 Left Top Width Height 赋值导致窗口移
  • 默认转换器何时启动?

    使用以下代码 虽然 Text 属性绑定到 DateTime 源属性 但我注意到 WPF 似乎会自动将文本转换为 DateTime 而无需我编写 ValueConverter 有人可以解释一下这是如何完成的吗
  • 绑定到列表的复杂模型

    我一直在尝试 MVCContrib 中的 NameValueDeserializer 它将采用 IList 作为控制器的参数 并将表单及其元素绑定到它 但我只是想知道 MVC Beta 是否有任何方法可以做到这一点 我知道您可以绑定强类型对
  • 消息框按钮文本

    我环顾四周 似乎所有内容都可以在消息框中编辑 禁止按钮上的文本 WPF http en wikipedia org wiki Windows Presentation Foundation C MessageBox Show Generic
  • WPF:当 FontStyle 为 Oblique 时,剪切文本块中最后一个字母的部分

    我有一个简单的 XAML 示例
  • 如何在 WPF 应用程序中实现气球消息

    我们想使用气球消息 如UX Guide http msdn microsoft com en us library aa511451 aspx来自微软 我发现一些示例使用 Windows 窗体中的本机代码 但本机代码需要组件的句柄 这对于
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互
  • App 对象中的 Log4Net?

    我正在开始在 WPF 桌面应用程序中进行日志记录 使用 Log4Net 作为日志记录组件 这是我的问题 在一个简单的桌面应用程序中 是否有任何理由不将我的记录器实例化为 App 类 App xaml cs 的属性 就像这样 public p
  • 如何在 Oxyplot 中显示折线图的绘图点?

    这是我的图表的 xaml 代码
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 在简单注入器中解析具有自定义参数的类

    我正在使用以下命令创建 WPF MVVM 应用程序简易注射器作为 DI 容器 现在 当我尝试从简单注入器解析视图时遇到一些问题 因为我需要在构造时将参数传递到构造函数中 而不是在将视图注册到容器时 因此这不是适用的 简单注入器将值传递到构造
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 不支持 URI 前缀

    我正在尝试使用以下方法加载和播放波形文件 SoundPlayer simpleSound new SoundPlayer pack application MyAssembly component Sounds 10meters wav s
  • 为 html5 输入类型渲染 asp.TextBox =“date”

    不知道以前有没有问过 也没找到 是否可以控制由 asp TextBox 呈现的输入文本的类型 我想把它改成
  • 如何从WPF中的另一个窗口调用方法

    我有两个窗户win1用于显示用户列表和其他win2用于添加用户 我还有一种在删除 更新或添加用户后刷新网格的方法 这个方法是在win1 我如何调用这个方法win2添加用户后 这是一个非常基本的面向对象设计问题 所以您希望能够从win2到一个
  • 将 MahApps 图标与 ContextMenu 结合使用

    我正在使用 MahApps Metro UI 工具包编写 WPF 应用程序 http mahapps com guides quick start html http mahapps com guides quick start html
  • std::less 枚举

    标准是否保证std less
  • 在包含按钮的ListView中,如何获取单击按钮的索引?

    我有一个ListView仅包含按钮 我想做的很简单 我想要获得已单击按钮的索引 列表的计数从0到100不等 因此当用户单击按钮6时 我需要这个数字进行处理 我定义了我的ListView像这样
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • 获取facebook更改后的facebook用户个人资料图片(10月24日)

    所以facebook改变了网站获取用户个人资料图片的方式 所有细节都在这里 https developers facebook com docs graph api reference user picture https develope
  • Gearman 工作状态问题

    我有一台 Gearman 服务器正在运行一个需要几分钟才能完成的进程 我正在运行一个进度条来显示完成情况 并尝试使用 Gearman PHP 扩展和 jobStatus 函数获取进度条的百分比 该作业肯定处于活动状态并已找到 因为前两个字段
  • 如何获取 docker run -i 的输出

    docker run通常返回其运行的命令的输出 我需要将一些数据传递给 docker 运行处理数据的命令 然后返回输出 当我使用 i选项 不返回任何输出 考虑这个简单的例子 echo hello docker run i base wc 它
  • 即使通过Javascript代码检查,如何触发复选框点击事件?

    我的页面中有很多复选框 并且有一个全选复选框可以检查所有复选框 不知何故 我想模拟复选框的单击事件 即使它是通过全选按钮选中 取消选中的 我该怎么做 您可以使用 jQuery trigger 方法 看http api jquery com
  • 下拉列表文本在 IE8 中不可见

    由于某种原因 我的 DDL 选项在 IE8 中都是不可见的 它们显然在那里 因为列表有 127 个选项 但文本是不可见的 在 Firefox 中一切都显示良好 我什至尝试在选择上放置内联样式 并将颜色设置为黑色 重要 当我使用 Firebu
  • 如何修复 git 中的“警告:忽略名称损坏的引用”?

    我正在 OSX 上工作 在特定的存储库中 每当我在输入 git 命令后按 Tab 键自动完成 git diff clicks tab 我现在看到大量警告 warning ignoring ref with broken name refs
  • Python,Tkinter:如何使用线程防止 tkinter gui 主循环崩溃

    嗨 我有一个小的 python gui 界面 有两个按钮 开始 启动计数器 和停止 假设停止计数器 计数器是一个无限循环 因为我不希望它结束 除非第二个按钮是点击 问题是当第一个按钮的功能仍在运行时无法单击第二个按钮 我读到我需要使用线程并
  • 有没有办法设置 iOS Safari 过度滚动/弹性滚动区域的样式?

    在 iOS Safari 中 当您滚动到网页底部时 您可以通过尝试再次滚动来将页面 抬起 我认为这是为了向用户保证他们已经到达页面末尾 默认情况下 该区域是空的 白色的 有没有办法用 CSS 来设置这个区域的样式 我想添加背景图片 只是为了
  • 防止系统字体缩放 - Jetpack Compose

    我正在尝试限制应用程序免受系统字体缩放的影响 我已经尝试了很多解决方案 但没有一个有帮助 他们中的大多数人都告诉我们使用 dp 而不是 sp 来确定文本大小 但在撰写中 如果我是正确的 我们只能使用 sp 因为它需要一个文本单元 有没有正确
  • Airbrake 抛出错误“pybrake - 错误 - strconv.ParseInt:解析“None”:无效语法”

    我正在尝试按照中描述的步骤在 Django 项目中使用 Airbrake 记录器https github com airbrake pybrake django integration https github com airbrake p
  • 如何配置 Webpack 5 包以使用全局 jQuery?

    我有一个正在加载 jQuery 的网页 其中有一个指向 CDN 的脚本标记 我正在将 jQuery 加载到全局范围内 并且在整个站点中都有少量 JS 使用它 这一切都工作正常 我想继续以这种方式加载 jQuery 除此之外 我使用 Webp
  • Nest.js Google Login(passport.js) 与 SPA 前端(React)

    在我的全栈项目 Nest js React 中 我使用护照谷歌实现了谷歌登录 如下所示 import Controller Get Req UseGuards from nestjs common import AppService fro
  • 无法使用 Hilt 注入 workmanager 构造函数

    我正在开发一个 Android 应用程序 我尝试将 hilt 与 workmanager 构造函数一起使用 但它不起作用并给出了此错误 2020 08 18 19 01 09 989 18125 18759 com E WM WorkerF
  • 共享首选项更新值未反映在服务中

    我的应用程序在应用程序启动时调用服务 在应用程序中 我正在更新给定键值对的值 SharedPreferences Editor editor getSharedPreferences getString R string shared pr
  • 如何使用 xpcom 更改 Firefox 代理设置

    我有一个在本地主机 127 0 0 1 上运行的代理服务器 并且我有累了必须培训用户如何在 Firefox 中切换代理以绕过被阻止的网站 我决定写一个插件 我想知道如何使用xpcom告诉 Firefox 使用某个代理 例如对于 http 请
  • 在 OpenCV 中对 RGB 图像进行阈值处理

    我有一个彩色图像 我想在 OpenCV 中设置阈值 我想要的是 如果任何 RGB 通道低于某个值 则将所有通道中的值设置为零 即黑色 因此 我使用 opencv 阈值函数 cv Mat frame thresholded read fram
  • iphone - 可以在 Grand Central Dispatch 的辅助线程上使用 usleep 吗?

    我正在使用 Grand Central Dispatch 将一个块添加到队列 不是主队列 该块有一个循环 并且在循环的每次通过之间需要 0 02 秒的小延迟 我在用 dispatch async myOwnQueue begin loop
  • HttpClient 不报告从 Web API 返回的异常

    我在用着HttpClient调用我的 MVC 4 Web api 在我的 Web API 调用中 它返回一个域对象 如果出现任何问题 HttpResponseException将被抛出到服务器 并带有自定义消息 System Web Htt
  • UserControl 不在 HitTestResult 中吗?

    我定义了一个用户控件
  • 将枚举类型绑定到文本框

    我将 textbox text 值绑定到枚举类型 我的枚举看起来像这样 public enum Type Active Selected ActiveAndSelected 我不想完成的是在文本框上显示 活动模式 而不是 活动 等等 可以这