您能否告诉我如何在 WPF 中单击不同的菜单项标题时更改内容模板。我已经定义了可以将其作为模板的用户控件。
例如:菜单项是:Home、Players、Team。当我单击主页时,我希望在我的内容控件中弹出该特定模板,当我单击播放器时,我希望在内容控件中弹出另一个模板(播放器列表)作为模板。
如何使用 XAML 中的触发器做到这一点?
非常感谢你 :)
您能否告诉我如何在 WPF 中单击不同的菜单项标题时更改内容模板。我已经定义了可以将其作为模板的用户控件。
例如:菜单项是:Home、Players、Team。当我单击主页时,我希望在我的内容控件中弹出该特定模板,当我单击播放器时,我希望在内容控件中弹出另一个模板(播放器列表)作为模板。
如何使用 XAML 中的触发器做到这一点?
非常感谢你 :)
您可以使用 aContentControl
来托管您的任何内容,并ContentControl.ContentTemplate
根据您想要绘制内容的方式进行设置。
作为一个非常基本的例子,
<ContentControl x:Name="MyContentControl">
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding }" Value="Home">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<local:MyHomeUsercontrol />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding }" Value="Players">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<local:MyPlayersUsercontrol />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding }" Value="Team">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<local:MyTeamUsercontrol />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style>
</ContentControl.Style>
</ContentControl>
并且在MenuItem.Click
MyContentControl.Content = "Home"; // or "Players" or "Team"
在此示例中,我将astring
用于班级ContentControl.Content
HomeViewModel
PlayersViewModel
<Window.Resources>
<DataTemplate DataType="{x:Type HomeViewModel}">
<local:MyHomeUserControl />
</DataTemplate>
<DataTemplate DataType="{x:Type PlayersViewModel}">
<local:MyPlayersUserControl />
</DataTemplate>
<DataTemplate DataType="{x:Type TeamViewmModel}">
<local:MyTeamUserControl />
</DataTemplate>
</Window.Resources>
<ContentControl x:Name="MyContentControl" />
和
MyContentControl.Content = new HomeViewModel();
使用选项卡控件并在顶部放置选项卡怎么样?那样会干净得多..
编辑; 例子:
<TabControl>
<TabItem>
<TabItem.Header>
<TextBlock Text="Football header!"/>
</TabItem.Header>
<TabItem.Content>
<Button Content="Push for football!"/>
</TabItem.Content>
</TabItem>
</TabControl>
这也可能有帮助;http://www.switchonthecode.com/tutorials/the-wpf-tab-control-inside-and-out