2012-08-07 117 views
0

您好我在我的MVVM應用程序中有三個基於區域的視圖。我是MVVM的新手,我想通過點擊不同視圖中的按鈕來更新DataGrid。如何從另一個視圖更新控制在一個視圖mvvm

一個視圖有一個按鈕,第二個視圖有數據網格。我想更新datagrid結果或綁定datagrid時按下其他視圖上的按鈕。我在eventService上看到了一些帖子,但我不知道如何。任何人都可以給我一些例子,因爲我是新的,所以不確定。提前致謝。

回答

1

一個簡單的解決方案是使用在兩個視圖中相同的視圖模型:

視圖模型:

public class MyModel : ViewModel 
{ 
    static myModel; 
    public static MyModel Current { get { if(myModel==null) myModel=new MyModel(); return myModel; } } 

    public IEnumerable<T> Data { get { ... } set { /* Notification */ }} 
    public ICommand SetData {get { return new DelegateCommand(()=>Data= /* return the data */); } 
} 

按鈕視圖:

<Button Command={Binding SetData} /> 

數據網格視圖:

<DataGrid ItemsSource={Binding Data} /> 

在代碼隱藏中將這兩個視圖添加到構造函數中: this.DataContext = MyModel.Current;

相關問題