使用WPF TabControl的ItemsSource属性使其子项的Parent属性为null

时间:2015-09-18 16:40:07

标签: c# wpf tabcontrol tabitem

我将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 个答案:

答案 0 :(得分:1)

父属性返回null,因为TabItem不是TabControl的子节点。失败的一个原因是不适当的DataContext,所以 XAML代码<TabControl ItemsSource={Binding TabItems}/>可能会失败。

检查DataContexts是否正确。 如果您在检查DataContext时遇到问题,请尝试Snoop,每个WPF开发人员都必须拥有一个方便的程序:) Snoop

启动Snoop,要求它“窥探”正在运行的程序,左侧出现一个带有Visual Hierarchy的窗口。深入查看TabControl并检查右侧的DataContext(它是第二个标签项RightTop)。验证它是否显示您定义的属性TabItemspublic ObservableCollection<TabItem> TabItems {get; set;}

希望有所帮助:)