使用WPF TabControl的ItemsSource属性会使其子元素的Parent属性变为null

3

我将WPF TabControl的ItemsSource属性绑定到一个TabItem的ObservableCollection。

XAML:

<TabControl ItemsSource={Binding TabItems}/>

C#:

public ObservableCollection<TabItem> TabItems {get; set;}

使用这个模型,TabItem的Parent属性始终为null。然而,如果我使用TabControl的Items属性并添加TabItems,则TabControl中的TabItem的父属性不为null。不确定为什么会出现这种情况。
1个回答

1
由于TabItem不是TabControl的子级,因此parent属性返回null。导致此问题的一个原因是不适当的DataContext,因此XAML代码<TabControl ItemsSource={Binding TabItems}/>可能会失败。
检查DataContext是否正确。 如果您在检查DataContext方面遇到麻烦,请尝试使用Snoop,这是每个WPF开发人员都必须拥有的便捷程序 :) Snoop 启动Snoop,要求其“窥视”运行中的程序,窗口将显示左侧的可视化层次结构。向下钻取到您的TabControl并在右侧检查其DataContext(它是第二个选项卡项,右上角)。验证它显示您定义的属性TabItems(public ObservableCollection<TabItem> TabItems {get; set;})。
希望能对您有所帮助 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接