字符串转换器获取标准值集合

2023-12-29

我正在尝试使用属性网格来显示数据。我必须为预定义的字符串常量编写 StringConverters ,以便它们可以显示在组合框中。

考虑一个颜色列表和另一个角度 0,90,180,270 列表。我想在网格上显示很多这样的列表。

我正在编写从 StringConverters 派生的新类并覆盖 GetStandardValues

class AngleConverter : StringConverter
{
    string[] Units = { "0", "90", "180","270" };
    public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
    {
        return true;
    }
    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
    {
        return new StandardValuesCollection(Units);
    }
    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
    {
        return true;
    }
}

Class UnitConverter :...相同的代码,除了字符串数组中的更改。 我在像 [TypeConverter(typeof(AngleConverter))] 这样的属性之前使用这个类。 如果我想添加要在网格上的列表框中显示的字符串列表,我需要创建新类。

有没有一种通用的方法可以做到这一点,而无需每次都创建新的类。

谢谢 ——哈里


编辑:根据 Thomas Lycken 对此的回答link https://stackoverflow.com/questions/1480103/how-to-create-public-string-property-with-drop-down-list-of-options,如果您的属性是枚举,这可能会有所帮助......

我不知道你是否可以避免编写新课程。我对你正在做的事情不够熟悉,不知道是否有明显更好或更简单的方法。话虽如此,您可以通过创建如下所示的抽象基类来稍微缩短您的类:

class MyBaseStringConverter : StringConverter 
{ 
    public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 
    { 
        return true; 
    } 
    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 
    { 
        //Call the abstract GetValues function here.
        return new StandardValuesCollection(GetValues()); 
    } 
    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 
    { 
        return true; 
    } 
    protected abstract string [] GetValues();
} 

public AngleConverter : MyBaseStringConverter
{
  protected override string [] GetValues() 
  { 
    return new string [] { "0", "90", "180", "270" };
  }
}

public ColorConverter : MyBaseStringConverter
{
  protected override string [] GetValues()
  {
    return new string [] { "Red", "Green", "Blue" };
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串转换器获取标准值集合 的相关文章

随机推荐

  • 如何防止 WPF 按钮在单击后保持突出显示状态?

    单击标准 WPF 按钮时 它会以蓝色突出显示 可能使用设置的任何 Windows 主题中的蓝色 并且它会保持突出显示状态 直到您与任何其他控件进行交互 对于我的应用程序来说 这会让用户感到困惑 有没有一种简单的方法可以关闭此功能并使按钮恢复
  • 使用外部表单登录Joomla 1.5(不在joomla文件夹内,但在同一服务器上)

    我目前安装了 Joomla 1 5 以及另一个网站 它们都驻留在同一网络服务器上 但是 它们位于 wwwroot 目录中的不同文件夹中 我想在非 joomla 网站中放置一个登录表单 该表单将使用户登录到 Joomla 我已经尝试将 Joo
  • jQuery idTabs插件选项卡点击功能

    使用 idTabs jQuery 插件时 如何添加单击选项卡时调用的函数 文档是这样说的 但没有给出示例 click function Function will be called when a tab is clicked ex idT
  • 在列中查找相同的数据并将其过滤到另一张工作表

    我在这段代码上花了几个小时 并且确实需要一些更好的专家意见 表 1 上的 A 列包含动态数据列表 通常是 IP 地址 但对于此来说 它只是一个数字 可以有重复 也可以没有 我需要在 A 列中找到所有相同的数据 选择它 并为其运行特定的代码
  • 在 OpenCV 中访问多维 Mat 的子矩阵

    根据这个post https stackoverflow com questions 8809517 multi dimensional data in a matrix in opencv with c从 OpenCV 文档中 我可以初始
  • Ember-CLI:修复“'Ember'未定义”?

    当使用 Ember CLI 并运行 ember 服务器时 我从 JSLint 收到以下错误 app path filename js line 1 col 16 Ember is not defined Adding import Embe
  • 如何调用另一个文件的函数而不包含该文件

    我有一个类假设 A 和另一个类 B 分别位于两个不同的文件 A php 和 B php 中 如何在B php文件中调用A类的函数而不在B php中包含A php文件 我们可以使用静态函数来调用吗 我见过一个应用程序 其中不包含文件也不扩展
  • render_template 和重定向之间的区别?

    return redirect url for index var var return render template index html var var 这两行本质上是同一件事吗 这两个函数有什么区别 redirect返回一个 302
  • 如何在 Flutter 中“设置”“WidgetTester”进行多个测试

    1 问题 The testWidgets函数显然只是test功能 我现在试图解决的一个用例是为多个泵送相同的小部件testWidgets a setUp对于多个testWidgets 但是 如果它在每个测试中创建一个新实例 我该如何做到这一
  • ANSI C 中的动态列表?

    我是否正确地认为创建在 C 中运行时增长的列表的唯一方法是使用链表 您可以结合使用 malloc 和 realloc 首先初始化一个 C 数组 malloc 并增长它 realloc 但是 如果您进行大量插入 您不会希望一次将其增加 1 个
  • 提交签名如何工作?

    我目前想知道 git commit 签名到底是如何工作的 试图找出这一点 但找不到任何确切的技术文档 我知道如何进行 git 提交签名 但我想知道 git 到底做了什么来签署提交 签署的具体内容是什么 它是给定提交时存储库内的完整数据 即提
  • 找出内存泄漏吗?

    我是 iphone 应用程序的新手 现在这是我的第一个应用程序 应用程序已安装但未运行 我写的这段代码显示内存泄漏 请找出来 提前致谢 ABRecordRef ref CFArrayGetValueAtIndex all i CFStrin
  • 如何在 HTA 文件上播放声音

    我已经在互联网上搜索了一段时间 但没有教程解释如何播放声音
  • 当重新创建布局包含视图的活动时,视图的“标签”是否会恢复?

    The docs http developer android com training basics activity lifecycle recreating html关于Activity休闲状态 默认情况下 系统使用Bundle实例状
  • Node js 中连接 ECONNREFUSED 127.0.0.1:21 错误

    我正在用 Node js 编写一个简单的应用程序 但遇到了这个问题 Error connect ECONNREFUSED 127 0 0 1 21 at Object exports errnoException util js 1034
  • 在Python2上运行jupyter笔记本时遇到困难

    我有Python 2 2 7 14 和 Python 3 3 6 4 安装在我的电脑上 Linux rajarshi x550cc 4 15 10 300 fc27 x86 64 1 SMP Thu Mar 15 17 13 04 UTC
  • 使用 libgdx 缩放 scene2d 按钮

    I don t know if it is just me but drawables http libgdx badlogicgames com nightlies docs api com badlogic gdx scenes sce
  • 如何关闭 MKMapView 中 MKAnnotation 的标注

    我有一个带有许多注释的 MKMapView 选择引脚会显示标注 按下附件会将新的视图控制器弹出到堆栈上 然而 当我从新的 VC 中按回时 标注仍然打开 我该如何关闭它 我努力了 if myMapView selectedAnnotation
  • 如何在java中使用enumMap

    java中如何使用enumMap 我想使用 enumMap 来获取从 0 到 n 的常量命名值 其中 n 是大小 但我不明白oracle网站上的描述 gt EnumMap http docs oracle com javase 8 docs
  • 字符串转换器获取标准值集合

    我正在尝试使用属性网格来显示数据 我必须为预定义的字符串常量编写 StringConverters 以便它们可以显示在组合框中 考虑一个颜色列表和另一个角度 0 90 180 270 列表 我想在网格上显示很多这样的列表 我正在编写从 St