wpf TabItem のコントロールにデータを入れるのに問題があります。xaml でいくつかの DataTemplates を定義しました。ここにそれらの1つがあります:
<Window.Resources>
...
<DataTemplate x:Key="memoTab">
<TextBox Name="memoTextBox" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" AcceptsReturn="True" />
</DataTemplate>
...
</Window.Resources>
次に、コード ビハインドで次のように新しいタブを作成します。
TabItem tab = new TabItem();
tab.Header = "Memo";
tab.ContentTemplate = (DataTemplate)FindResource("memoTab");
tab.ApplyTemplate();
System.Windows.Controls.TextBox tb = (System.Windows.Controls.TextBox)tab.Template.FindName("memoTextBox", tab);
if (tb != null) tb.DataContext = memo; //string memo is created earlier as linq query
tabControl.Items.Add(tab); //tabControl is xaml defined
問題は、tb が常に null であるため、テキスト ボックスにデータが表示されないことです (テキスト ボックス自体がタブに表示され、機能します)。
私は xaml を使用して tabControl にタブを作成しません (DataTemplate を使用していない最初のタブを除いて) 実行時にユーザーが追加および削除することを意図しているためです。
何か案は?