我有一个选项卡控件,其中的项目源数据绑定到可观察集合。我使用数据模板来定义选项卡标题和内容的可视化表示。使用数据绑定时,TabControl无法创建第一个选项卡
当我添加一个项目的可观察集合我得到一个标题页眉,但没有内容。当我将第二个项目添加到可观察集合中时,我得到了这两个项目的选项卡标题和内容。所以首先当第二项被添加到可观察集合中时,第一个选项卡的内容被创建。任何人都知道这是一个错误还是可以解释它为什么会发生?有没有解决方法?我试着用相同的结果使用模板选择器。以下是重现的示例代码。
我用.NET 3.5和4.0测试了这个。
XAML:
<Window x:Class="TabDemo.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<Button Content="Add new tabitem" Click="OnAdd" />
<TabControl
ItemsSource="{Binding Path=Items}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</StackPanel>
</Window>
后面的代码:
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();
}
甜,感谢您的简单解决方法。 – 2011-05-24 18:14:11