Xamarin中XAML的BindingProxy

问题描述 投票:1回答:1

我以前曾使用以下代码在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 = ...

c# xaml xamarin xamarin.forms xamarin.android
1个回答
0
投票

根据答案,here BindingContext没有提供资源,因此不支持数据绑定。根据您的用例,可能会有另一个选项来获取特定的BindingContext,因此您可能需要解释一下。

© www.soinside.com 2019 - 2024. All rights reserved.