我有一个 WPF 应用程序,用于选择稍后作为自动化测试应用程序的一部分运行的测试。
在 UI 中,我有多个选项卡控件代表每个测试类别。每个选项卡内都有一个包含每个测试的复选框的列表框。
当用户选择所有测试并单击运行按钮时,我需要遍历每个选项卡和其中的列表框以构建最终测试列表。我不想有大量类似以下内容的声明:
GetTab1Tests();
GetTab2Tests();
GetTab3Tests();
// Continue
我想以一种我可以说的方式设计它:
foreach(Tab t in tabControl)
{
CollectTestsFromListbox(**listbox associated with t**);
}
如何绑定(bind)这些信息?我最好的猜测是创建一个字典,将选项卡与必要的列表框配对,但这种良好做法是否向前发展?随着被测试应用程序的增长,对更多选项卡的需求也可能增长。
编辑 目前我尝试设置选项卡的 DataContext:
<TabItem x:name="tabLoginTests DataContext="{Binding ElementName=lstboxLoginTests}">
在 .xaml.cs 文件中我可以调用:
tabLoginTests.DataContext
所有这一切都是返回 {System.Windows.Controls.ListBox Items.Count:4}
。我不知道如何获取这个对象并获取列表框控件本身。有什么建议吗?
最佳答案
在创建 ListBox 时尝试将 ListBox 添加到目标 TabControl 对象的 Tag 属性。
然后您将能够使用 t.Tag 访问它。然后您可以将其转换为 ListBox(.Tag 是一个对象)。
关于c# - 如何迭代其中的选项卡和列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262614/