繁体   English   中英

Caliburn.micro:使用选项卡控件绑定ViewModel的两个视图

[英]Caliburn.micro : Bind two views of ViewModel with tab Control

我正在尝试通过编辑Caliburn.Micro源代码随附的示例源代码Caliburn.Micro.SimpleMDI,将viewmodel的两个视图绑定到选项卡控件的两个选项卡。 该项目包含ShellViewModel和带有TabView的TabViewModel。 我添加了一个名为TabViewDetails的视图。 我按如下方式编辑ShellViewModel。

public class ShellViewModel : Conductor<IScreen>.Collection.OneActive 
{
    int count = 1;

    public void OpenTab()
    {
        TabViewModel  vm = null;
        if (Items.Count != 0)
        {
            vm = new TabViewModel() { DisplayName = "Detail Tab " + count++ };   
            var secondView = new TabViewDetails();

            ViewModelBinder.Bind(vm, secondView , null);


        }
        else
        {
            vm = new TabViewModel() { DisplayName = "Tab " + count++ }; 
        }

        ActivateItem(vm);
    }

}

第一个选项卡确定。 但是第二个标签什么也没显示,有人可以帮忙解决这个问题吗?

我没有使用Caliburn.Micro,但是简单的解决方案是一种视图,一种视图模型。 如果您将代码更改为以下内容:

public class ShellViewModel : Conductor<IScreen>.Collection.OneActive {
    int count = 1;

    public void OpenTab()
    {
        Screen screen;

        if (count != 0)
        {
            screen = new TabViewModel
                            {
                                DisplayName = "Tab " + _count++
                            };
        }
        else
        {
            screen = new TestViewModel
                            {
                                DisplayName = "Tab " + _count++
                            };
        }

        ActivateItem(screen);
    }
}

其中TestViewModel可以是TabViewModel

public class TestViewModel : TabViewModel
{
}

那就可以了

Caliburn文档确实在同一视图模型中有多个视图部分,但是我还没有弄清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM