【发布时间】:2012-12-06 09:27:29
【问题描述】:
将用户控件集合绑定到 TabControl 的 ItemsSource 属性很有用。
然而,一旦你走这条路,似乎很难从代码中设置每个 tabitem 的标题。 我可以从 xaml 中做到这一点但我需要从代码中做到这一点。
所以我正在寻找的是类似的东西
TabControl tabControl = new TabControl();
tabControl.ItemsSource = collectionOfUserControls;
tabControl.HeaderPath = "Title" // this property is not available
编辑
如果手动添加到集合中,这是如何做到的。问题是在使用 ItemsSource 属性时如何设置标题。
var vragenlijsten = new UserControl[]
{
new UC1() ,
new UC2(),
};
TabControl tabControl = new TabControl();
foreach (var vragenlijst in vragenlijsten)
{
var tabItem = new TabItem();
tabItem.Content = vragenlijst;
tabItem.Header = vragenlijst.GetType();
tabControl.Items.Add(tabItem);
}
【问题讨论】:
-
为什么你需要从代码中做到这一点?也有一个 HeaderTemplate..
-
我想知道如何在代码中做到这一点:) 如果它不可行/不实用,那也是知识
-
当您带着“传统”思维并尝试在 WPF 中使用它时,没有什么是实用的。实际上,我将 TabControl 视为 ViewModel 的 IEnumerable,然后将它们与各自的视图一起呈现在屏幕上。这就是 WPF 的思维方式。