
[英]Sharing viewmodel to multiple views using Caliburn.Micro in WP7
[英]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.