我有一個選項卡控件,其中的項目源數據綁定到可觀察集合。我使用數據模板來定義選項卡標題和內容的可視化表示。使用數據綁定時,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