您的ViewModel將具有已填充模型對象的屬性。在這裏您將分配它們,以便View能夠顯示數據。
public ParentModel
{
get { return parentModel; }
private set
{
if (parentModel != value)
{
parentModel = value;
RaisePropertyChanged("ParentModel");
}
}
}
public int SelectedItemIndex
{
get { return selectedItemIndex; }
set
{
if (selectedItemIndex != value)
{
selectedItemIndex = value;
RaisePropertyChanged("SelectedItemIndex");
}
}
}
的視圖將包含顯示數據的對象,無論是DataGrid中,組合框等,您可以使用的ItemTemplate自定義數據是如何顯示的,但關鍵是你的數據bind
的控制。這可以允許數據在只有ViewModel的方向模式下查看(OneWay)或View to ViewModel(OneWayToSource)或兩者(TwoWay)。因此,當用戶更改選定的索引時,數據將返回到ViewModel,因爲它爲以下的TwoWay設置。這裏的ItemsSource被設置爲OneWay,所以只有ViewModel可以改變View。
<DataGrid ItemsSource="{Binding Path=ParentModel.Items, Mode=OneWay}"
SelectedIndex="{Binding Path=SelectedItemIndex, Mode=TwoWay}" />
如果ViewModels需要與BusinessLogic交互,只需傳遞數據。如果一個獨立的ViewModel需要這些信息,則需要使用框架中可用的概念,例如。 EventAggregator(Prism)可以傳遞數據,因爲它們不會彼此瞭解。
MVVM的核心概念是模型和WPF控件屬性的綁定。我想你會想更多地閱讀它來充分利用功率和設計。一些非常有用的問題/答案可以在StackOverflow上找到,MSDN有幾個很好的教程等。
請與我分享好的教程鏈接。我發現了很多文章,但是我找不到綁定到Datagrid的教程 – StepUp
@StepUp [This](http://karlshifflett.wordpress.com/2010/11/07/in-the-box-ndash-mvvm-培訓/)是一個非常全面的開始,你可以遵循,當你有問題時,你將利用SO/MSDN來了解更多關於細節的信息。 – bland