C# Forms BindableProperty绑定在某些情况下不触发

C# Forms BindableProperty绑定在某些情况下不触发,c#,binding,xamarin.forms,C#,Binding,Xamarin.forms,代码示例,显示了BindableProperty的一些奇怪问题。 代码位于GitHub中 这是一个Xamarin.Forms解决方案,包含3个项目: 公共.NET标准项目 安卓项目 iOS项目 UWP项目 常见的项目是基于ContentView的用户控件CustomTextView。此控件具有BindableProperty文本。主窗口有3个自定义控件。还有一种奇怪的行为: 绑定到ViewModel属性TextValue的标签文本属性。 我们在CS代码中更改文本属性-一切正常。 我们将文本属性绑

代码示例,显示了BindableProperty的一些奇怪问题。 代码位于GitHub中 这是一个Xamarin.Forms解决方案,包含3个项目:

公共.NET标准项目 安卓项目 iOS项目 UWP项目 常见的项目是基于ContentView的用户控件CustomTextView。此控件具有BindableProperty文本。主窗口有3个自定义控件。还有一种奇怪的行为:

绑定到ViewModel属性TextValue的标签文本属性。 我们在CS代码中更改文本属性-一切正常。 我们将文本属性绑定到ViewModel属性TextValue。还有一个问题:当TextValue更改时-Text属性未更改。 我们将静态文本设置为属性文本,一切正常。 我认为有两种解决方案:

直接在propertychanged事件中设置标签文本 将绑定更改为如下文本={binding Text,Source={x:Reference controlName}}并设置控件名。我想你应该在这个时候得到错误,这个当前绑定。还是我错了? 查看viewmodel的代码。这是不正确的。TextValue属性应该是简单属性,而不是BindableProperty。您需要在viewmodel中实现INotifyPropertyChanged,因此它会引发对更新视图的更改。读一读

==已更新==

将BindableObject作为ViewModel有点奇怪。你会得到很多不需要的方法

已启动代码,但出现绑定错误:

[0:]在“App2.CustomTextView”上未找到绑定:“TextValue”属性,目标属性:“App2.CustomTextView.Text” [0:]在“App2.CustomTextView”上未找到绑定:“TextValue”属性,目标属性:“App2.CustomTextView.Text” 我认为BindingDataContext没有正确地设置为该元素,因此它不会更新文本。将name form MainPage设置为x:name=Page,并按如下方式绑定

Text={Binding BindingContext.TextValue,Source={x:Reference Page}
请为您的问题提供一个最小、完整且可验证的示例:问题非常复杂:visual multi control解决方案中的项目很少。如果没有MCVE,GitHub上的代码可能很少,我们无法帮助您调试。我们不会通读整个项目的代码来帮助您。至少您应该向我们展示属性设置程序的代码,它不能正确地触发ChangeNotification+任何调用的函数。另外,所有为属性/其支持字段赋值的位置。不幸的是,1和2不可能,因为我们没有事件。主要的问题是,这个甚至没有提出来。ViewModel是正确的,因为BindableObject在后台有基本的实现。我还从INotifyPropertyChanged的基本实现开始。更新了我的答案,检查更新:非常感谢!这对我有用。我还创建了单独的分支,viewModel基本上在其中实现。