如何使用 Caliburn.Micro 和不同的 UserControl 制作 TabControl

米沙托

我有 TabControl 的问题,我什至不知道如何开始。

我有我命名的根视图MainViewModelCsharp类看起来像这样:

public class MainWindowViewModel : Conductor<IScreen>.Collection.OneActive
{
    //i have couple of ToggleButtons to load diffrent UserControls, LoadAddNewPage 
    //is one of them
    public void LoadAddNewPage() => this.ActivateItem(new AddNewTaskViewModel(params));
}

ToggleButtonMainWindowView.XAML那个加载中LoadAddNewTaskPage

<ToggleButton x:Name="LoadAddNewPage"               
            Grid.Column="4"
            Width="50" Height="50" 
            Content="&#xf067;" 
            Foreground="White" 
            BorderThickness="0"  
            BorderBrush="{x:Null}" 
            Background="#FF085078" Margin="20,3,0,3" Grid.ColumnSpan="3">
       <!-- i deleted data triggers here -->
    </ToggleButton>

正如您在上面看到的,它加载AddNewTaskViewModel表单以将新项目添加到我的数据库/列表(或其他)。

对文本框等AddNewTaskView.xaml很简单UserControl

我的问题是,如何准备我的LoadAddNewPage按钮加载TabControl两个UserControler现在,我正在加载new AddNewTaskViewModel()(它是UserControl,它按照我的意愿正确加载)。如何使TabControlCaliburn.Micro将存储AddNewTaskViewModelAddNewProjectViewModel如何TabControl在两个不同的之间切换UserControl我有一个问题要开始,因为我不知道如何从这个问题开始。感谢您的任何建议

编辑

在这里,我将展示我的完整 ViewModel

 public class MainWindowViewModel : Conductor<IScreen>.Collection.OneActive
{
    protected override void OnViewLoaded(object view) => Show.LoginBox(this.loggedUser);

    public void LoadUserInfoPage() => this.ActivateItem(new UserInfoViewModel(this.loggedUser));

    public void LoadTaskManagerPage() => this.ActivateItem(new TaskManagerViewModel(this.loggedUser, this.repository));

    public void LoadNotificationsPage() => this.ActivateItem(new NotificationsViewModel(this.repository));

    //here, i want to trigger TabControl with two VMs to choose
    public void LoadAddNewTaskPage() => this.ActivateItem(new AddNewTaskViewModel(this.loggedUser, this.repository));
}

编辑2

我得到了上下文,但我想实现:

创建另一个Vm类,它将存储我User Controls想在我的中使用的TabControl

public class TabControlViewModel 
{
    //how to store two VMs that i will use to my TabControl here?
}

并在MainViewModel

public class MainWindowViewModel : Conductor<IScreen>.Collection.OneActive
{
    //activate TabControlViewModel that will store AddTaskVM and AddProjectVM
    //this vm will display on my `TabControl` in xaml in `MainWindowView.xaml`
    public void LoadAddNewPage() => this.ActivateItem(new TabControlViewModel(params));
}
毫米8

TabControl在视图中添加一个命名的“Items”:

<TabControl x:Name="Items" />

...以及另Button一种将其他类型添加ScreenItems集合中的方法:

public class MainWindowViewModel  : Conductor<IScreen>.Collection.OneActive
{
    public void LoadAddNewTask() => this.ActivateItemAsync(new AddNewTaskViewModel());
    public void LoadAddNewProject() => this.ActivateItemAsync(new AddNewProjectViewModel());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF Caliburn.Micro和TabControl与UserControls问题

来自分类Dev

Caliburn.Micro中的UserControl

来自分类Dev

Caliburn.Micro中的UserControl

来自分类Dev

使用Caliburn.Micro从ViewModel调用UserControl的方法

来自分类Dev

如何在WPF中强制内容卸载我的TabControl的所有TabItem?(使用Caliburn.micro)

来自分类Dev

Caliburn Micro - 使用 IResult 和渲染视图

来自分类Dev

在WPF(与Caliburn.Micro)中将INotifyDataErrorInfo与嵌入式UserControl一起使用

来自分类Dev

一起使用F#和Caliburn.Micro

来自分类Dev

使用Caliburn Micro 2和Windows Phone 8.1的NavigateToViewModel

来自分类Dev

使用Caliburn.Micro的动作

来自分类Dev

如何使用“ caliburn micro 2”和“ Windows Phone 8.1”启动动画

来自分类Dev

Caliburn.Micro和Bootstrapper / BootstrapperBase类

来自分类Dev

ReSharper和Caliburn.Micro的约定

来自分类Dev

Caliburn.Micro和应用履历

来自分类Dev

MEF和Caliburn.Micro ViewModelFactory参数

来自分类Dev

如何用caliburn micro动态填充combobox?

来自分类Dev

使用Caliburn.Micro重用视图实例

来自分类Dev

使用Caliburn Micro在WPF中更新DataGrid

来自分类Dev

使用caliburn micro的组合框绑定错误

来自分类Dev

Caliburn.Micro和Windows Phone 8.1:如何将参数传递给导航GoBack()方法?

来自分类Dev

在带有Caliburn.Micro和MahApps框架的HierarchicalDataTemplate中使用样式

来自分类Dev

使用带有Ninject和WPF的Caliburn.Micro在视图模型之间绑定/传递数据

来自分类Dev

使用Caliburn.Micro MVVM框架和IoC容器的引导程序设计模式

来自分类Dev

将Caliburn Micro与Microsoft Ribbon控件和RibbonApplicationMenu一起使用

来自分类Dev

UI在使用Caliburn Micro和BusyIndicator控件的WPF MVVM应用程序中未按预期更新

来自分类Dev

如何使用Caliburn.Micro进行导航服务?

来自分类Dev

如何使用约定对Caliburn.Micro操作实施延迟

来自分类Dev

如何使用Caliburn.Micro.PhoneBootstrapper注册IMobileServiceClient

来自分类Dev

如何使用caliburn.micro更改Metro主题

Related 相关文章

  1. 1

    WPF Caliburn.Micro和TabControl与UserControls问题

  2. 2

    Caliburn.Micro中的UserControl

  3. 3

    Caliburn.Micro中的UserControl

  4. 4

    使用Caliburn.Micro从ViewModel调用UserControl的方法

  5. 5

    如何在WPF中强制内容卸载我的TabControl的所有TabItem?(使用Caliburn.micro)

  6. 6

    Caliburn Micro - 使用 IResult 和渲染视图

  7. 7

    在WPF(与Caliburn.Micro)中将INotifyDataErrorInfo与嵌入式UserControl一起使用

  8. 8

    一起使用F#和Caliburn.Micro

  9. 9

    使用Caliburn Micro 2和Windows Phone 8.1的NavigateToViewModel

  10. 10

    使用Caliburn.Micro的动作

  11. 11

    如何使用“ caliburn micro 2”和“ Windows Phone 8.1”启动动画

  12. 12

    Caliburn.Micro和Bootstrapper / BootstrapperBase类

  13. 13

    ReSharper和Caliburn.Micro的约定

  14. 14

    Caliburn.Micro和应用履历

  15. 15

    MEF和Caliburn.Micro ViewModelFactory参数

  16. 16

    如何用caliburn micro动态填充combobox?

  17. 17

    使用Caliburn.Micro重用视图实例

  18. 18

    使用Caliburn Micro在WPF中更新DataGrid

  19. 19

    使用caliburn micro的组合框绑定错误

  20. 20

    Caliburn.Micro和Windows Phone 8.1:如何将参数传递给导航GoBack()方法?

  21. 21

    在带有Caliburn.Micro和MahApps框架的HierarchicalDataTemplate中使用样式

  22. 22

    使用带有Ninject和WPF的Caliburn.Micro在视图模型之间绑定/传递数据

  23. 23

    使用Caliburn.Micro MVVM框架和IoC容器的引导程序设计模式

  24. 24

    将Caliburn Micro与Microsoft Ribbon控件和RibbonApplicationMenu一起使用

  25. 25

    UI在使用Caliburn Micro和BusyIndicator控件的WPF MVVM应用程序中未按预期更新

  26. 26

    如何使用Caliburn.Micro进行导航服务?

  27. 27

    如何使用约定对Caliburn.Micro操作实施延迟

  28. 28

    如何使用Caliburn.Micro.PhoneBootstrapper注册IMobileServiceClient

  29. 29

    如何使用caliburn.micro更改Metro主题

热门标签

归档