我以前曾使用以下代码在WPF中实现BindingProxy。
public class BindingProxy : Freezable
{
public static readonly DependencyProperty DataProperty = DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy), new UIPropertyMetadata(null));
protected override Freezable CreateInstanceCore()
{
return new BindingProxy();
}
public object Data
{
get { return this.GetValue(DataProperty); }
set { this.SetValue(DataProperty, value); }
}
}
我已经尝试为我的Xamarin应用程序创建一个类似的类,如下所示。
public class BindingProxy : BindableObject
{
// Using a DependencyProperty as the backing store for Data.
// This enables animation, styling, binding, etc...
public static readonly BindableProperty DataProperty = BindableProperty.Create(nameof(Data), typeof(object), typeof(BindingProxy), null);
public object Data
{
get { return this.GetValue(DataProperty); }
set { this.SetValue(DataProperty, value); }
}
}
这是我最可能想到的Xamarin Freezable类,但是不幸的是,当我这样声明我的xaml时>
<ContentPage.Resources> <binding:BindingProxy x:Key="BindingProxy" Data="{Binding BindingContext}" /> </ContentPage.Resources>
Data
属性从不设置为BindingContext(或任何其他值),并且返回默认值(空)。
任何人都可以提供对我可能做错事情的任何见解吗?
我以前使用以下代码在WPF中实现BindingProxy。公共类BindingProxy:Freezable {公共静态只读DependencyProperty DataProperty = ...
根据答案,here BindingContext没有提供资源,因此不支持数据绑定。根据您的用例,可能会有另一个选项来获取特定的BindingContext,因此您可能需要解释一下。