我正在尝试使用WPF
模式创建MVVM
窗口。
现在我有一个问题,就是在没有使用“保存”按钮的情况下,直接在更改值并通知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
在视图中更改了值后更新。
我不想在View“Code behind”中使用Event处理程序,因为,据我了解MVVM模式,ViewModel实例不需要了解View。
答案 0 :(得分:1)
如果值没有改变,就什么也不做 我做C#所以VB可能不正确
Set(value As DateTime)
If _CreatedAt <> value Then
_CreatedAt = value
' update database
Me.RaisePropertyChanged(Function() Me.CreatedAt)
End If
End Set