1
我遇到了WPF選項卡控件的問題。WPF選項卡數據模板 - 控件在創建新選項卡時保留值
我有一個TabControl,與ItemsSource綁定到一個ObservableCollection。我爲選項卡的標題/內容部分創建了一個數據模板。內容部分包含一個自定義控件,帶有一堆標籤和文本框。對於創建新選項卡時可編輯的文本框,數據可以繼續並顯示在新選項卡中。不知道這是我的XAML或視圖模型中的問題。這裏是我的代碼爲XAML:
<UserControl.Resources>
<DataTemplate x:Key="TabItemHeaderTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding AdFile.Name}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="TabItemContentTemplate">
<MyView:MyCustomControl/>
</DataTemplate>
<Style x:Key="TabItemContainerStyle" TargetType="TabItem">
<Setter Property="Header" Value="{Binding}"/>
<Setter Property="HeaderTemplate"
Value="{StaticResource TabItemHeaderTemplate}"/>
<Setter Property="Content" Value="{Binding}"/>
<Setter Property="ContentTemplate"
Value="{StaticResource TabItemContentTemplate}"/>
</Style>
</UserControl.Resources>
<TabControl Grid.Row="3" ItemsSource="{Binding OpenedFiles}" x:Name="_myTabControl" SelectedItem="{Binding Path=CurrentDataControlViewModel, Mode=TwoWay}" SelectionChanged="TabControlSelectionChanged" ItemContainerStyle="{StaticResource TabItemContainerStyle}"/>
不知道我應該提供什麼其他信息。也許這是一個常見問題,我只是沒有正確設置一些東西?基本上我只是想能夠爲每個選項卡創建控件的新實例....在此先感謝。
顯示如何創建新選項卡。另外,請更具體地說明哪些數據從哪裏傳出。 – 2013-03-12 11:34:25
你能更詳細地描述一下,你想達到什麼樣的行爲,以及你目前看到了什麼樣的行爲? – Marc 2013-03-12 11:37:29
這是正常的TabControl行爲。您將'ContentTemplate'設置爲UserControl,並且由於切換選項卡時模板不會更改,因此WPF認爲沒有理由重新繪製模板的新實例。我通常使用TabControl的自定義版本來解決您的問題。代碼可以在[這裏]找到(http://stackoverflow.com/a/8619120/302677) – Rachel 2013-03-12 12:48:45