在我的应用程序中,我有以下 TabControl:
<TabControl ItemsSource="{Binding MyItemsSource}"
ContentTemplate="{StaticResource ResourceKey=MyContentTemplate}"
IsSynchronizedWithCurrentItem="True" />
这是使用的 ContentTemplate:
<DataTemplate x:Key="MyContentTemplate">
<Canvas>
<TextBox Text="{Binding Path=MyFirstText, Mode=TwoWay}" />
<TextBox Text="{Binding Path=MySecondText, Mode=TwoWay}" />
</Canvas>
</DataTemplate>
和 ItemsSource:
public ObservableCollection<MyData> MyItemsSource { get; set; }
public class MyData
{
public string MyFirstText { get; set; }
public string MySecondText { get; set; }
}
请考虑这种情况:
- 选择第一个选项卡
- 在第一个 TextBox 中输入一些文本
- 选择第二个标签
- 选择第一个选项卡:在第一个选项卡的TextBox中输入的文字消失了(因为没有应用绑定)
另一种情况:
- 选择第一个选项卡
- 在第一个 TextBox 中输入一些文本
- 选择第二个文本框(或任何改变焦点的东西,除了改变标签)
- 选择第二个标签
- 选择第一个选项卡:输入的文本仍然显示(因为应用了绑定)
这是正常行为吗?还是我做错了什么?谢谢你。