Эти два 1-часовых видео показывают пошаговое руководство по использованию шаблона MVVM для создания простых приложений для викторин в Silverlight и WPF:
Реализация Model-View-ViewModel в Silverlight
Реализация Model-View-ViewModel в WPF
Что меня поражает в этом, так это насколько они отличаются структурно , например, как они используют DataBinding:
В подходе Silverlight мы устанавливаем для DataContext View значение ObservableCollection в ViewModel :
<views:QuestionView x:Name="QuestionDataView" />
QuestionViewModel qdata = new QuestionViewModel();
qdata.FetchQuestions();
QuestionDataView.DataContext = qdata.Questions;
В подходе WPF мы устанавливаем для DataContext Window значение ViewModel .
<view:QuizView Margin="4" />
base.DataContext = new QuizViewModel(Quiz.Create());
Просто кажется, что каждый пример MVVM, на который я смотрю, связывает DataContext в несколько новом варианте, и я пытаюсь найти некоторую твердую основу для ", как выполняется привязка DataContext в шаблон MVVM".
Что приходит вам в голову, когда вы решаете связать DataContext с чем-то: зачем связывать DataContext Window / View / ListBox / и т. Д. с ObservableCollection / ModelView / и т. Д. ? Каковы преимущества, недостатки, стратегии здесь?
Любой вклад приветствуется.