我的结构如下:
Content Page -> BindingContext set in code and this.ApplyBindings() called.
ContentView -> BindingContext = "{Binding SubProperty}" (this is set in Xaml on the ContentPage)
ListView -> ItemsSource = "{Binding SubCollectionProperty}" (Set in xaml on the ContentView)
Switch IsToggled = "{Binding Selected, Mode = TwoWay}"
Button -> Click Event (Set in xaml in the content view)
SubCollectionProperty具有一个名为“ Selected”的布尔字段,并通过OnPropertyChanged触发,并在OnPropertyChanged中进行查看,但确实会更改其Selected属性。
但是,如果我执行以下操作:
var model = this.BindingContext as Model;
在按钮的Click事件上,模型的子数组未显示对Selected属性的更改。
当在模型的代码中设置了其Selected属性时,子数组的其他列表视图开关也不会更新。
位于开关旁边的Label是bound属性,但是在设置完模型后,也不会通过更新模型来更新。
那么我该如何全部使用一个模型并在整个链中有效并成为正确的模型并使所有控件正常工作?
我正在尝试创建等效于用户控件的控件,该控件可以绑定到特定类型并显示内容,然后在用户与它完成交互时引发一个事件,这样我就不必进行多次操作时间。
有更好的方法吗?我查看了BindingProperties,但这似乎也没有任何区别,但是也许我缺少了一些东西。