在一个窗口中有多个视图(MVVM)

时间:2012-08-07 14:19:37

标签: mvvm view

我正在努力学习MVVM,并且作为一个没有导师的新人,有时它会让人感到困惑。现在我有这个问题:

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

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

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

2 个答案:

答案 0 :(得分: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:代码手写,所以检查错误

答案 1 :(得分:0)

好的,我要感谢任何阅读此内容并试图提供帮助的人,特别是你们这些人“Blindmeis,Jen H”

谢谢。

我知道这种情况必须如此笼统,我无法找到它。

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

  1. 使用Microsoft Prism。 (它是一种轻松制作WPF模块化程序的模式) MSDN LINK Another LINK

  2. 使用主详细信息模式 Here it is clear

  3. 所以我解决了我的问题。希望它对你也有用。