Wpf 如何使用XAML为TabControl中的每个TabItem创建单独的UserControl实例?
我正在创建一个WPF应用程序,您可以在其中创建一个配乐。 每个配乐都有相册,其中包含曲目等 我已经将Album creation界面分离到它自己的UserControl中,然后在主窗口中创建了TabControl(此后称为编辑器) 在主项目类中,有一个可观察的唱片集集合,唱片集有一个可观察的曲目集合以及其他属性 我的行动计划是将TabControl绑定到Album ObservableCollection,以便在制作新专辑时,它也为其制作一个新选项卡。这一部分到目前为止还有效。当制作新相册时,我可以看到一个新选项卡,我不必显式地创建一个新的TabItem并将其添加到TabControl中 这是选项卡控件:Wpf 如何使用XAML为TabControl中的每个TabItem创建单独的UserControl实例?,wpf,xaml,data-binding,user-controls,Wpf,Xaml,Data Binding,User Controls,我正在创建一个WPF应用程序,您可以在其中创建一个配乐。 每个配乐都有相册,其中包含曲目等 我已经将Album creation界面分离到它自己的UserControl中,然后在主窗口中创建了TabControl(此后称为编辑器) 在主项目类中,有一个可观察的唱片集集合,唱片集有一个可观察的曲目集合以及其他属性 我的行动计划是将TabControl绑定到Album ObservableCollection,以便在制作新专辑时,它也为其制作一个新选项卡。这一部分到目前为止还有效。当制作新相册时,我
<TabControl x:Name="AlbumTabs" SelectionChanged="TabControl_SelectionChanged" TabStripPlacement="Left" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding CurrentProject.AlbumCollection}">
<TabControl.Resources>
<DataTemplate x:Key="Album_UserControl" x:Shared="False">
<local:Soundtrack_Album/>
</DataTemplate>
</TabControl.Resources>
<TabControl.ContextMenu>
<ContextMenu>
<MenuItem Header="Add Album" Click="contextAddAlbum_Click" />
</ContextMenu>
</TabControl.ContextMenu>
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="270"/>
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="Album"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:Soundtrack_Album/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
然而,当我创建选项卡时,它们似乎都使用相同的UserControl实例。我选择了一个选项卡,更改了一些字段,选择了另一个选项卡,这些字段仍然是相同的。当我选择其他选项卡时,内容是否应该更改
我还注意到TabControl的项目实际上是相册,而不是TabItems。我猜这是不对的,因为我的下一个问题是试图将新创建的TabItem的DataContext设置为新创建的相册
谢谢您的帮助。是的,所有控件都应该使用同一个控件实例,只有控件上的DataContext将被更改。关于,内容未更改,您可能会遇到绑定/控制问题。您可以发布taht代码吗?另外,项目应该来自您的ItemSource,所以相册应该是TabControl项目。