我在将数据放入 wpf TabItem 控件时遇到问题。我在 xaml 中定义了几个 DataTemplates。这是其中之一:
<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 始终为空,因此文本框中不显示任何数据(文本框本身显示在选项卡中,并且可以正常工作)
我不使用 xaml 在 tabControl 中创建选项卡(除了第一个,它不使用 DataTemplate 并且很好),因为它们是由用户在运行时添加和删除的。
有任何想法吗?