参考
Github项目CMTabNavigation
TargetFramework netcoreapp3.0
PackageReference Caliburn.Micro版本=“ 4.0.105-alpha”
我正在做我的第一个示例,以在用户单击菜单项时在选项卡控件中显示ViewModel。该示例工作正常,但选项卡上的显示名称不起作用。你能帮我吗?>
<Window x:Class="CMTabNav.Views.ShellView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:cal="http://www.caliburnproject.org" xmlns:local="clr-namespace:CMTabNav.Views" mc:Ignorable="d" Title="ShellView" Height="450" Width="800"> <DockPanel> <Menu DockPanel.Dock="Top" FontSize="25"> <MenuItem Header="_File"> <MenuItem.Background> <RadialGradientBrush> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFC3C1AD" Offset="0.105"/> </RadialGradientBrush> </MenuItem.Background> <MenuItem x:Name="PartsList" Header="_Parts List" /> <MenuItem x:Name="AssembliesList" Header="_Assembly List" /> <MenuItem x:Name="Demo" Header="_Demo" /> <MenuItem x:Name="ExitApplication" Header="_Exit" /> </MenuItem> </Menu> <Grid> <TabControl x:Name="Items"> <TabControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding DisplayName}" /> <Button Content="X" cal:Message.Attach="DeactivateItem($dataContext, 'true')" /> </StackPanel> </DataTemplate> </TabControl.ItemTemplate> </TabControl> <!--<ContentControl x:Name="ActiveItem" Margin="20 5 20 20"> </ContentControl>--> </Grid> </DockPanel> </Window>
ShellViewModel.cs
using Caliburn.Micro; using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace CMTabNav.ViewModels { public class ShellViewModel : Conductor<object>.Collection.OneActive { public ShellViewModel() { } public void PartsList() { ActivateItemAsync(IoC.Get<PartsListViewModel>(), new CancellationToken()); DisplayName = "Part List"; } public void AssembliesList() //AssembliesList { ActivateItemAsync(IoC.Get<AssembliesListViewModel>(), new CancellationToken()); DisplayName = "Assembly List"; } public void Demo() { ActivateItemAsync(IoC.Get<DemoViewModel>(), new CancellationToken()); DisplayName = "Demo View"; } } }
PartsListViewModel.cs
using Caliburn.Micro;
using System;
using System.Collections.Generic;
using System.Text;
namespace CMTabNav.ViewModels
{
class PartsListViewModel: Screen
{
}
}
参考Github项目CMTabNavigation TargetFramework netcoreapp3.0 PackageReference Caliburn.Micro Version =“ 4.0.105-alpha”我正在做我的第一个示例,以在...时在选项卡控件中显示ViewModel]]
class PartsListViewModel : PropertyChangedBase, IHaveDisplayName
{
public string DisplayName { get; set; }
}