如何根据标题选择 TabItem

2023-12-27

在我的程序中我有一个tabItem当 a 时被选择TreeViewItem与同等的header被选中。

这就是我目前拥有的(它有效):

(parent_TreeViewItem.Items.Contains(SelectedItem))
{
          tabControl1.SelectedItem = tabControl1.Items //Changes tab according to TreeView
                .OfType<TabItem>().SingleOrDefault(n => n.Header.ToString() == SelectedItem.Header.ToString());
}

与我这次所做的不同的是tabItem's header我选择的是由string and an integer.

例如:TreeViewItem选择的总会有一个header named "Arrival",但是tabItem's header会有这样的形式"Arrival" + integer. The integer值将来自父节点的header.

对于这个过程,我想我首先需要获得header父节点的值,因为它包含integer我需要的价值。然后我需要以某种方式修改上面的代码来查询具有header like, "Arrival" + parentHeader.

我该怎么做这样的事情?

谢谢。

UPDATE

我当前的代码,使用@varocarbas的答案。我正在使用涉及设置的答案的第一个版本integer curNumber与父母的价值header。单击“Arrival”节点时,代码会编译,但不会执行任何操作。

if (parent_TreeViewItem.Items.Contains(SelectedItem.Parent)) //Location - Actions tabs
{
       TreeViewItem parentItem = (TreeViewItem)SelectedItem.Parent;
       int curNumber = getNumber(parentItem.Header.ToString());

       tabControl1.SelectedItem = tabControl1.Items //Changes tab according to TreeView
             .OfType<TabItem>().SingleOrDefault(n => n.Header.ToString() == SelectedItem.Header.ToString() + curNumber.ToString());
}

public static int getNumber(string parentNodeHeader)
{
    int curNumber = 0;
    curNumber = Convert.ToInt32(parentNodeHeader);

    return curNumber;
}

更新2:因为“到达”节点是我用作父节点的节点的孙子节点,所以我更改了if我的第一行声明为:

 if (parent_TreeViewItem.Items.Contains(SelectedItem.Parent))

首先,您必须获取父节点及其标头中包含的编号:

TreeViewItem parentItem = (TreeViewItem)selectedItem.Parent;
int curNumber = getNumber(parentItem.Header.ToString());

getNumber是一个从父节点标头中的确切位置检索数字的函数。为了编写正确的函数,您必须了解更多相关信息;目前,只是基础知识(它提取输入字符串中的所有数字):

private int getNumber(string parentNodeHeader)
{
    int curNumber = 0;

    //Required string-analysis actions
    //Sample functionality: extract all the numbers in the given string
    string outString = "";
    int count = -1;
    do
    {
        count = count + 1;
        Char curChar = Convert.ToChar(parentNodeHeader.Substring(count, 1));
        if (Char.IsNumber(curChar))
        {
            outString = outString + parentNodeHeader.Substring(count, 1);
        }
    } while (count < parentNodeHeader.Length - 1);

    if (outString != "")
    {
        curNumber = Convert.ToInt32(outString);
    }

    return curNumber;
}

然后您必须更新查询以考虑新信息:

 .OfType<TabItem>().SingleOrDefault(n => n.Header.ToString() == selectedItem.Header.ToString() + curNumber.ToString());

UPDATE

上面的函数只是展示了我通常依赖的代码类型;但对于简单的情况(比如建议的获取字符串中所有数字的情况),您可能更愿意依赖Regex,正如 Viv 所建议的。您可能会依赖以下内容:

private int getNumber(string parentNodeHeader)
{
    System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(parentNodeHeader, @"\d+");
    return Convert.ToInt32(m.Value);
}

该函数仅传递它找到的第一组连续数字;结果与上面的函数不同,但足以作为概念证明(这个答案的意图)。

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

如何根据标题选择 TabItem 的相关文章

  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li

随机推荐

  • C# - 本地化 - 在 wpf 应用程序中更改语言

    我正在制作一些 wpf 应用程序 我需要更改语言的选项 我的解决方案中有一个名为 Resorces 的文件夹 其中存储了所有 resx 文件 实际上是 language resx 和 language en EN resx 我的 XAML
  • 在 pandas 中创建新列的高效击键方式

    有没有更有效的方法在 pandas 数据框中创建多个新列df初始化为零 for col in add cols df loc col 0 UPDATE using jeff的方法 https stackoverflow com a 4178
  • 除 SIGKILL 之外的信号不会终止 Windows 上的进程

    我正在通过 Go 启动一个简单的 Java 应用程序 目的是证明 Go 可以发送 SIGQUIT 或 SIGTERM 等信号 并且 Java 可以捕获该信号并进行适当处理 即正常关闭 当我在命令行上运行 Java 程序并向其发送 CTRL
  • TortoiseGit 覆盖图标为红色,但所有文件均已提交

    我提交了所有文件 TortoiseGit 中的提交列表为空 但某些文件夹是红色的 我从任务管理器中杀死了 TgitCache exe 但什么也没发生 我重命名了我的文件夹 通过在文件夹名称末尾添加数字 并恢复为主名称 但问题仍然存在 最后
  • 停止在 kestrel 上运行的 dotnet core 网站

    部署现有 net core 网站的新版本时 我首先要如何safely停止旧的正在运行的 Kestrel 应用程序 这是我想编写的示例 伪部署脚本 dotnet stop mysite mysite dll lt this line here
  • 如何使用 Google 表格中的数据将数组插入到 Google 文档中?

    我正在尝试从 Google 工作表中提取一系列名称并将其放入 Google 文档中 在电子表格中 姓氏 lastNames 位于名字 firstNames 之前 并且两者都在单独的列中 我试图将名字和姓氏一起放入我的文档中 并且名字在前 我
  • 如何禁用 WPF ListView 的 XAML 中的某些项目

    好吧 抱歉这个问题太宽泛 但让我们看看你们的建议 我有一个由 XML 文件加载的 WPF ListView 使用 XAML 代码如下 我有第二个 XML 文件 其中包含与 ListView 中的内容相匹配的项目 然而 如果有not第二个文件
  • Python 线程 - 如何在单独的线程中重复执行函数?

    我有这个代码 import threading def printit print Hello World threading Timer 1 0 printit start threading Timer 1 0 printit star
  • Rust 中的字符串与选项匹配

    我试图将输入与可能的类型相匹配 然后将该字符串值转换为数字 我有这样的事情 fn letter to num nameNum str gt Option
  • React DnD useDrop 调用方法时未使用当前状态

    我正在尝试创建一个具有拖放项目功能的待办事项应用程序 我在用着反应免打扰到目前为止一切正常 但是当一个新项目添加到列表中时 我意识到useDrop 中的 drop 方法中调用的函数将仅使用页面首次加载时的状态 没有其他组件存在此问题 当我尝
  • 如何检测应用程序中的表单是否被破坏?

    我们的应用程序中有许多表单 我需要一个全局事件处理程序来检测其中一个表单何时被销毁 然后采取一些操作 p s 我想避免向每个表单添加代码 这些代码需要在主表单即将销毁时向主表单发送消息 大多数表单也是在运行时动态创建和销毁的 我正在考虑也许
  • 如何在没有主机文件的情况下运行 Ansible

    如何在没有主机文件的情况下运行 Ansible 就像 ansible Some Options IP a uptime 你可以这样做 ansible all i
  • 使用什么算法来删除重复项?

    假设我们有一些文件 例如名为 A txt 我们知道有are一些重复的元素 A txt 是very大 比内存大十倍以上 大概50GB左右 有时 B 的大小大约等于 A 的大小 有时则为many比 A 的尺寸小几倍 让它具有这样的结构 a 1
  • 我什么时候会使用 JQuery.Callbacks?

    我正在查看 jQuery 1 7 中添加的新内容 我发现它们现在有 jQuery Callbacks http api jquery com jQuery Callbacks http api jquery com jQuery Callb
  • 如何使用 JavaScript 求 1 到 N 之间所有数字的总和

    我正在尝试找到一种使用 JavaScript 计算 1 到 N 之间所有数字之和的方法 以下是我迄今为止尝试过的代码 但它似乎不起作用 function numberSum N var total 0 for var i 1 i lt N
  • 如何在 2012 年引用 SSIS 中的 dll?

    我正在尝试使用脚本组件向我的 SSIS 包 2012 添加 dll 引用 IntelliSense 正在为我工 作 编码时我没有看到错误 但是 我收到以下错误 无法加载文件或程序集 XYZ 版本 1 0 0 0 文化 中性 PublicKe
  • 使用 jQueryeach 获取图像高度

    我的页面上有一堆图像 我正在尝试使用 jQuery 来获取每个图像的高度并将其显示在图像之后 这是我的代码 document ready function thumb each function imageWidth thumb img a
  • 如何在 PostgreSQL 中从 Json 数组中获取元素

    我对此进行了很多搜索 但仍然无法回答 我正在使用 PostgreSQL 在下面的示例中 列名称为 sections 列类型为 json 我的专栏在数据库中如下所示 sections name section1 attributes attr
  • 如何处理 Django Admin 中的大量删除?

    我正在使用 Django 2 2 10 我有一个模型叫Site 以及一个名为Record 每条记录都与一个站点 外键 相关联 我的应用程序运行几天 几周 几个月后 每个站点都可以有数千条与之关联的记录 我有效地使用数据库 所以这通常不是问题
  • 如何根据标题选择 TabItem

    在我的程序中我有一个tabItem当 a 时被选择TreeViewItem与同等的header被选中 这就是我目前拥有的 它有效 parent TreeViewItem Items Contains SelectedItem tabCont