我試圖創建一個使用MVVM
模式WPF
窗口。 現在我有一個問題,找出如何更新值,在視圖改變,到數據庫,而不使用「保存」按鈕,之後直值被改變,而ViewModel
被通報。更新值到數據庫,而「保存」按鈕
控制在查看
<ItemsControl>
<Label Content="Order Date"/>
<DatePicker SelectedDate="{Binding CreatedAt, Mode=TwoWay}"/>
</ItemsControl>
視圖模型
Public Class ViewModelOrder
Implements INotifyPropertyChanged
Private _Order As ModelOrder
'...
Private _CreatedAt As DateTime
Public Property CreatedAt As DateTime
Get
Return _CreatedAt
End Get
Set(value As DateTime)
_CreatedAt = value
Me.RaisePropertyChanged(Function() Me.CreatedAt)
End Set
'...
Public Sub New(inOrder as ModelOrder)
_Order = inOrder
_CreatedAt = _Order.CreatedAt
End Sub
'...
End Class
綁定做工精細,性能CreatedAt
更新後的值在視圖改變。
我不想使用事件處理程序中查看「代碼背後」,因爲,據我所知MVVM模式,視圖模型的實例並不需要了解查看。
你爲什麼不只是在二傳手這樣做呢? – Steve 2015-02-24 14:28:45
好的,但是如何從View中調用setter,因爲ViewModel在從數據庫獲取數據時可以使用相同的setter來設置值?從數據庫中讀取並創建對象 – Fabio 2015-02-24 14:33:42
傳入構造函數的值。但是,當窗口打開一個CreatedAt屬性的setter被調用了三次。我檢查了CreatedAt proerty沒有在其他地方使用。 – Paparazzi 2015-02-24 14:38:05