Wpf 使用数据绑定时,TabControl无法创建第一个选项卡

Wpf 使用数据绑定时,TabControl无法创建第一个选项卡,wpf,datatemplate,tabcontrol,Wpf,Datatemplate,Tabcontrol,我有一个选项卡控件,可以将哪些项源数据绑定到可观察的集合。我使用数据模板定义选项卡标题和内容的视觉表示 当我将一个项目添加到可观察的集合时,我会得到一个选项卡标题,但没有内容。当我向可观察集合添加第二个项目时,我会得到这两个项目的选项卡标题和内容。因此,首先,当第二项被添加到可观察集合时,第一个选项卡的内容被创建。有人知道这是否是一个bug,或者可以解释它为什么会发生?有解决办法吗?我试着使用模板选择器,结果也一样。下面是要复制的示例代码 我用.NET3.5和4.0测试了这一点 XAML:

我有一个选项卡控件,可以将哪些项源数据绑定到可观察的集合。我使用数据模板定义选项卡标题和内容的视觉表示

当我将一个项目添加到可观察的集合时,我会得到一个选项卡标题,但没有内容。当我向可观察集合添加第二个项目时,我会得到这两个项目的选项卡标题和内容。因此,首先,当第二项被添加到可观察集合时,第一个选项卡的内容被创建。有人知道这是否是一个bug,或者可以解释它为什么会发生?有解决办法吗?我试着使用模板选择器,结果也一样。下面是要复制的示例代码

我用.NET3.5和4.0测试了这一点

XAML:


代码隐藏:

public partial class Window1
{
    public Window1()
    {
        InitializeComponent();

        Items = new ObservableCollection<int>(); 
        DataContext = this;
    }

    public ObservableCollection<int> Items { get; set; }

    private void OnAdd(object sender, RoutedEventArgs e)
    {
        Items.Add(_random.Next(100));
    }

    private readonly Random _random = new Random();
}
公共部分类窗口1
{
公共窗口1()
{
初始化组件();
Items=新的ObservableCollection();
DataContext=this;
}
公共ObservableCollection项{get;set;}
专用void OnAdd(对象发送方、路由目标方)
{
添加(_random.Next(100));
}
private readonly Random_Random=new Random();
}

如果在选项卡控件上设置
SelectedIndex=“0”
,它将解决此问题。我相信这与在添加/删除项目时强制执行SelectedIndex的错误有关

public partial class Window1
{
    public Window1()
    {
        InitializeComponent();

        Items = new ObservableCollection<int>(); 
        DataContext = this;
    }

    public ObservableCollection<int> Items { get; set; }

    private void OnAdd(object sender, RoutedEventArgs e)
    {
        Items.Add(_random.Next(100));
    }

    private readonly Random _random = new Random();
}