2012-05-07 37 views
0

我试图通过编辑样本源代码Caliburn.Micro.SimpleMDI到视图模型的两个视图绑定到选项卡控制的两个标签附带Caliburn.Micro源。这个项目包含ShellViewModel和TabViewModel与TabView的。我添加了一个名为TabViewDetails的视图。我编辑ShellViewModel如下。Caliburn.micro:与标签控制绑定两个视图视图模型的

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); 
    } 

} 

第一个选项卡是好的。但是,第二个选项卡显示nothing.Can人帮助找出问题?

回答

0

我没有用太多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 docs在相同视图模型上有多个视图,但我还没有想到。

相关问题