在我的CustomTabcontrol中,当通过数据模板将选项卡绑定到ObservableCollection中时,会创
本文关键字:选项 绑定 中时 ObservableCollection 会创 CustomTabcontrol 我的 数据 | 更新日期: 2023-09-27 18:12:53
仅仅当我将TabControl的ItemsSource绑定到视图模型的ObservableCollection时,就会创建多个视图,尽管在ObservableCollection中只有一个视图模型。
这在项目中通过以下消息输出到控制台的事实来证明:视图创建…Id = 1,视图创建…Id = 2这是我的代码
MainWindow.XAML
<Grid>
<custom:TabControlExt ItemsSource="{Binding Tabs}" />
</Grid>
MainWindow.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Tabs = new ObservableCollection<TestViewModel>();
Tabs.Add(new TestViewModel());
this.DataContext = this;
}
public ObservableCollection<TestViewModel> Tabs { get; set; }
}
TestView.XAML.cs
public partial class TestView : UserControl
{
static int __i = 0;
int _i = 0;
public TestView()
{
__i++;
_i = __i;
InitializeComponent();
this.DataContextChanged += TestView_DataContextChanged;
Console.WriteLine("View created ... Id = " + _i);
}
应用程序。XAML
<Application.Resources>
<DataTemplate DataType="{x:Type local:TestViewModel}">
<local:TestView />
</DataTemplate>
</Application.Resources>
有谁能解释为什么它创建了两个视图
实际上我已经修正了
<DataTemplate x:Key="HeaderDataTemplate" x:Shared="false" DataType={x:Type local:TabItemExt}">
<TextBlock Focusable="False" Text="{Binding}" TextTrimming="CharacterEllipsis" IsHitTestVisible="False" Padding="4,0,4,1" />
</DataTemplate>
<Setter Property="HeaderTemplate" Value="{StaticResource HeaderDataTemplate}" />
但是我在编辑HeaderTemplate时遇到了一些问题,它不会显示标题