将 TabControl 绑定到枚举

2024-02-05

我需要将所有枚举值显示为 TabControl 上的选项卡项,除了一个枚举成员(无)

enum MyEnum { Value1, Value2, Value3, None }

TabControl 应显示三个选项卡(Value1、Value2 和 Value3)。我需要能够通过绑定到 SelectedItem 属性来获取/设置 ViewModel 中的当前选项卡。每个选项卡的标题都使用本地化的枚举值,目前我使用转换器进行此操作。

这可能吗?我尝试了很多东西,但无法使其发挥作用。我手动添加每个 TabItem 没有问题,但我不确定如何使 SelectedItem (选项卡)成为枚举类型。


我找到了解决方案。通常,您会这样做以获得枚举成员的列表:

<ObjectDataProvider x:Key="SomeEnumValues"
                    MethodName="GetValues" 
                    ObjectType="{x:Type sys:Enum}">
    <ObjectDataProvider.MethodParameters>
        <x:Type TypeName="vm:SomeEnum" />
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

这会吸引所有成员,所以这不是一个可行的方法。我创建了一个自定义转换器,它将接受枚举值,并从类型中提取所有成员

// in the convert method
Type type = value.GetType();

List<object> enumValues = new List<object>();

// add each member, except None (has value of 0)
foreach (var field in type.GetFields())
{
    if (field.IsLiteral)
    {
        var x = field.GetValue(null);

        // add new value
        if ((int)x != 0)
            enumValues.Add(field.GetValue(null));
    }
}

本地化是在 ItemTemplate 中完成的。在那里我还使用转换器(不同的一个),我在其中获得本地化值。

<DataTemplate x:Key="EnumItemTemplate">
    <TextBlock Text="{Binding Mode=OneWay, Converter={StaticResource enumConverter}}"/>
</DataTemplate>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 TabControl 绑定到枚举 的相关文章

  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载
  • 从固定文档中删除页面?

    如何从固定文档中删除页面 我添加这样的页面 Add page to pageContent PageContent pageContent new PageContent IAddChild pageContent AddChild fix
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 如何在 C# 中将 ListView 与目录和文件绑定

    我想在 C 的 ListView 中绑定 C 驱动器中的所有目录和文件 我的代码是 protected void Page Load object sender EventArgs e DirectoryInfo di new Direct
  • 缓冲数据库游标中的数据,同时保持 UI 响应

    我有一个已填充的数据库目录和一个可用于检索对象的游标 这个目录显然可能非常大 我想做的是使用反应式用户界面缓冲数据 同时保持 UI 数据绑定和响应 我按照步骤操作here http www interact sw co uk iangblo
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • WPF 如何从 DataTemplate 访问控件

    我有一个包含网格的数据模板 网格内有一个组合框
  • 命令绑定问题。如何启用命令按钮

    我的代码在这里 gt gt public class Player INotifyPropertyChanging string addressBar public string Url get return addressBar set
  • 怎么让画笔变得光滑,中间没有线条

    大家好 正如你在之前的画笔中看到的 中间有线条 不太顺利 如何使其平滑 如何删除该行 我用混合创建它
  • WPF 在菜单上选择项目或在视图模型中获取命令参数

    我正在寻找几个小时来解决一个简单的问题 我想在我的菜单项上使用 SelectedItem 但经过几个小时的 stackoverflow 我发现这是不可能的 我发现了很多关于 CommandParameter 的信息 但我不明白它是如何工作的
  • 如何打开带有预填充附件的 Outlook 新邮件窗口

    当用户单击我的应用程序中的某些按钮或链接时 我需要打开一个带有预填充附件的新电子邮件窗口 老问题 但我也遇到了这个问题 所以这里有一个复制和粘贴解决方案 Microsoft Office Interop Outlook Applicatio
  • 将 RoutedEvent 转换为 WPF 中 MVVM 模式的命令

    如何将 Checkbox checked 路由事件转换为 MVVM 模式的命令 参考 考虑按钮单击路由事件 当我们为按钮分配命令时 button click 事件被视为命令 它执行相应的命令 我用谷歌搜索了它 我得到了 EventBehav
  • 我的 C# .NET 团队是否应该迁移到 Windows Presentation Foundation? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 MVVM 中,可以在视图后面的代码中访问 ViewModel 吗?

    在 MVVM 模式中 是否可以接受甚至可以访问视图代码后面的 ViewModel 属性 我有一个可观察的集合 它填充在 ViewModel 中 我需要在视图中使用它来绑定到带有链接列表的无限滚动条 IE private LinkedList
  • TabItem ContenTemplate 上 IsMouseOver 的触发器

    我对 TabItem 样式有疑问 也许你们中的某个人可以帮助我 遵循有问题的风格
  • 设置 Wpf 饼图样式

    这是我的饼图 xaml
  • 删除窗口的背景图像 WPF

    我在 WPF 中遇到问题 其中窗口在关闭后 应用程序的另一部分尝试写入图像之前不会释放其对背景图像文件的文件锁定 举个例子 假设我有一个 WPF 应用程序 由 3 个窗口 1 个 菜单 选择窗口和另外 2 个窗口组成 两个窗口都会创建一个I
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同

随机推荐

  • 如何解决Apache Camel中的“无法创建路由route1异常”?

    我对 Apache Camel 概念很陌生 我尝试使用 apache Camel API 编写示例代码 当我尝试运行代码时 出现以下异常 谁能帮我解决这个问题 缺少依赖库 所以我添加了这些库并解决了我的问题
  • Composer create-project 在本地包存储库上失败

    我正在尝试创建一个local存储库来测试作曲家项目 但是 composer create project repository url path to packages json vendor project name 失败了 Unexpe
  • 如何重新排列 igraph 图中边的顺序?

    我正在尝试在 igraph 中制作一个网络图 通过对某些重要边缘进行不同的着色来突出显示某些重要边缘 对于大图 它们经常被埋在其他图下面 例如 library igraph test lt barabasi game 200 m 2 E t
  • 通过 URL 哈希链接触发打开 Zurb Foundation Accordion

    我真的很希望能够通过问题散列中带有手风琴窗格的 URL 激活 打开 Zurb 基金会手风琴 就像 example com page accordion1 Foundation 已经可以做到这一点吗 或者是否很容易实现 老实说我没有任何线索
  • Eclipse 中的块选择

    有谁知道在 Eclipse 中是否可以进行块选择 或矩形选择 也许有插件 我自己还没找到 从 Eclipse 3 5 开始可以进行块选择 您可以使用以下方法在标准选择和块选择之间切换 Alt Shift A Opt Cmd A on Mac
  • 动态地从 Reveal.JS 添加/删除幻灯片

    使用 Reveal js 运行演示文稿时是否可以添加 删除幻灯片 准确地说 是否有一个 API 可以实现这一点 或者可能有一些肮脏的解决方法 我对即将到来的项目也对此感到好奇 环顾四周 找不到任何东西 所以我为自己的项目写了一些东西 附加在
  • 将字节数组转换为 POD

    比方说 我有一个无符号字符数组 代表一堆 POD 对象 例如 从套接字或通过 mmap 读取 它们代表哪些类型以及在什么位置是在运行时确定的 但我们假设每个类型都已经正确对齐 将这些字节 转换 为相应 POD 类型的最佳方法是什么 解决方案
  • SQL/C# - 执行查询的最佳方法

    我需要从 C 类中执行 sql 查询 我想到了2个选择 启动sqlcmd进程 使用 SqlCommand 对象 我的问题是哪种方法更好 重要的是 该解决方案只能在短时间内保持与服务器的连接 如果上述想法不好 我愿意接受其他想法 提前致谢 使
  • select 的 Angular ng-change 不调用声明的方法

    我有以下 html 表单选择语句
  • 将 C# MethodInvoker.Invoke() 用于 GUI 应用程序...这样好吗?

    使用 C 2 0 和 MethodInvoker 委托 我有一个 GUI 应用程序从 GUI 线程或工作线程接收一些事件 我使用以下模式来处理表单中的事件 private void SomeEventHandler object sende
  • 错误:Angular2 中没有 HttpHandler 的提供者

    我正在尝试通过拦截器实现 HttpCache 以下是caching interceptor service ts import HttpRequest HttpResponse HttpInterceptor HttpHandler Htt
  • Linux 中的 Eclipse Luna UI 渲染

    我在 Fedora 19 中安装了 Eclipse Luna 并面临以下问题 与 Windows 安装相比 选项卡标题似乎很大 我在主目录中搜索并编辑了 gtkrc 2 0 文件 这使得选项卡更小 但我使用高对比度外观而不是 GTK 来获得
  • 提交时显示“您的二进制文件未针对 iPhone 5 进行优化”(ITMS-90096)

    这是我的第一个 iOS 应用程序 当我尝试将其提交到应用程序商店时 它给了我 ITMS 90096 错误 我想我已经上传了所有正确的图标和启动画面图像 它提到了 iphone 5 上 4 英寸显示屏的启动图像 但我不知道在哪里添加它 这是我
  • 如何将 Base64 字符串保存到文件并使用 Flutter 查看它

    我需要使用 Flutter 下载并查看文件 如果可能的话 图像 PDF 等 我的问题是 我要下载的文件是 Base64 String 我如何使用 Flutter 来实现这一点 以下是解码 Base64 字符串并将其保存为本地设备上的文件的代
  • Xcode 6 - 如何为 Ad-Hoc 分发选择签名证书/配置文件?

    为了将应用程序分发给我们的测试人员 我们使用 Xcode 我们使用以下过程来执行此操作 归档申请 临时分发 选择配置文件 将 ipa 保存到文件夹 但与Xcode 6 这个工作流程发生了一些变化 我仍然可以选择 Ad Hoc 分发选项 但无
  • 在chrome中将html保存为pdf

    我在用rmarkdown生成 HTML 报告 我在受限制的机器上 无法安装 tex 所以 我试图生成一个 HTML 文档 然后将其转换 打印为 pdf 示例 Markdown 文档是 title trials author Foo Bar
  • ubuntu 上的 Rscript

    我可以从哪里安装 Rscript 我需要使用 exec 从 php 文件运行 R 脚本 不过我需要先安装 Rscript R 的主包称为r base https packages ubuntu com search keywords r b
  • CSS/HTML:如何在全页 JS 上自定义箭头?

    我正在使用全页 JShttps github com alvarotrigo fullPage js https github com alvarotrigo fullPage js 制作我的网站 但是 当尝试更改箭头样式时 control
  • 使用 SQL 查询根据值复制和拆分行?

    我有一组数据 想要根据列值拆分多行 例如 源数据 预期输出 谢谢 劳伦斯A 解决上述问题的最佳且简单的方法是 SELECT value AS UID NAME Age Education Department FROM StackSoln
  • 将 TabControl 绑定到枚举

    我需要将所有枚举值显示为 TabControl 上的选项卡项 除了一个枚举成员 无 enum MyEnum Value1 Value2 Value3 None TabControl 应显示三个选项卡 Value1 Value2 和 Valu