2012-08-07 36 views
2

我试图学习MVVM,并且作为一个没有辅导老师的新人,有时会变得非常混乱。现在我有这个问题:在一个窗口(MVVM)中有多个视图

**在一个窗口中,我使用了3种不同模型视图的不同视图。 **每个视图用于从分支中选择一个项目,并且我们将遍历树。 **在第一个视图中,我选择我的书 **第二个视图将显示该书的页面 **我希望它显示该页面的练习的最后一个视图。

到目前为止,我能够将第一个视图绑定到书籍。现在,我应该如何将第二个视图的源代码绑定到第一个人的slectedItem

MVVM Problem http://clickasun.ir/8283kitchen/images/mvvmproblem.jpg

+0

如果有人能够提供给我一个示例应用程序的链接,那将会很棒。 – Mohfath 2012-08-07 14:59:02

+2

这可能会进入你的方向:http://stackoverflow.com/questions/4599802/concrete-examples-of-state-sharing-between-multiple-viewmodels-wpf-mvvm – 2012-08-07 15:48:18

回答

0

OK,我要感谢谁看了这一点,并试图帮助,特别哟家伙“Blindmeis,仁H”

谢谢。

我知道这种情况必须如此一般,我只是无法找到它。

所以我找到了两种方法,它们都可以是很好的解决方案。

  1. 使用Microsoft Prism。 (它是一种模式,使容易在WPF模块化程序) MSDN LINK Another LINK

  2. 使用主从模式 Here it is clear

所以我得到了我的解决。希望它对你也有用。

1

有几种方法可以达到你想要的东西。例如。

public class Exercise{} 

public class Page 
{ 
    public List<Exercise> MyExercise {get;set;} 
} 

public class Book 
{ 
    public List<Page > MyPages {get;set;} 
} 

视图模型

public ObservableCollection<Book> MyBooks {get;set;} 

XAML

<ListBox x:Name=books ItemsSource="{Binding MyBooks}"/> 
<ListBox x:Name=pages ItemsSource="{Binding ElementName=books,Path=SelectedItem}"/> 
<ListBox ItemsSource="{Binding ElementName=pages,Path=SelectedItem}"/> 

这当然只是一个办法做到这一点。

PS:手写代码,因此检查错误

相关问题