我的视图中有checkbox
,如果我对对象进行任何修改并触发propertyChanged
事件,则对其的绑定工作正常。
另一方面,当我点击我的checkbox
时,如果可以更改它所绑定的属性,我会执行一些逻辑。如果不是,我将其更改回False并触发propertyChanged
事件。
我的观点是没有更新checbox的状态,但仍然会检查它。
对于任何旁路,这是一个已知的问题吗?
代码:
<ctrls:CheckBox
IsChecked="{Binding IsConverted, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
当我更改值并引发属性更改事件时,将使用false值检索属性:
Private _isConverted As Boolean
Public Property IsConverted As Boolean
Get
Return _isConverted
End Get
Set(value As Boolean)
_isConverted = value
End Set
End Property
答案 0 :(得分:-1)
在Xaml
的约束中,请确保Mode
设置为TwoWay
,以便更新在两个方向都有效。
<CheckBox IsChecked="{Binding Path=ViewModelIsChecked, Mode=TwoWay}"/>
此外,既然你发布了代码,你似乎“手动”做事,应该使用INotifyPropertyChanged接口来实现。你可以删除UpdateSourceTrigger并在ViewModel中实现INotifyPropertyChanged吗?
有一本很好的指南here。
编辑: 因为海报不愿意或无法阅读和理解指南,所以这里有代码:
Public Property PhoneNumber() As String
Get
Return Me.phoneNumberValue
End Get
Set(ByVal value As String)
If Not (value = phoneNumberValue) Then
Me.phoneNumberValue = value
NotifyPropertyChanged() <===== THIS LINE IS DIFFERENT! YOU DON'T HAVE IT. YOU NEED IT.
End If
End Set
End Property