2012-07-12 48 views
0

我在我的WPF4應用程序中使用MVVM。如何根據Infragistics xamdatagrid中更改的數據啓用/禁用命令?

在我的應用程序中,ViewModel有一個ObservableCollection ProductsList屬性,一個ICommand保存命令屬性。 Product類具有兩個屬性:ProductName和Price。

在UI中,窗口的DataContext綁定到ViewModel,xamDataGrid的DataSource綁定到ProductsList屬性,並且一個按鈕綁定到Save屬性。

用戶將更改視圖中的價格列。

我試圖做的是當應用程序第一次啓動時,SAVE按鈕被禁用,因爲沒有新的東西需要保存。只要用戶對任何記錄進行更改(例如更改產品的價格),SAVE按鈕就會啓用。

我的問題是:xamDataGrid有一個屬性,表明bidden數據已被更改(所以數據網格很髒)?如果有這樣的屬性,我想將它綁定到ViewModel的屬性,例如,bool DataChanged,然後我將使用此DataChanged屬性來設置「Save」命令的CanExcuteMethod,以啓用SAVE按鈕。

或者,有沒有其他的方式來完成這個功能?

謝謝。

回答

0

XamDataGrid不公開此屬性,因爲它不應該由UI控件跟蹤,因爲它不知道數據存儲或數據是否從除本身以外的其他源更改。

最好的方法是在ViewModel中跟蹤這一點,因爲如果您依賴於View中的控件,那麼ViewModel對View有依賴關係,這可能會阻止您使用具有相同VeiwModel的不同View。

爲此,在您的ViewModel中創建屬性,就像您將要綁定網格並在ViewModel中的數據更改時設置它的值一樣。

相關問題