如何将BindingBase属性绑定到Xamarin中的变量

时间:2018-10-02 13:30:55

标签: c# xamarin xamarin.forms

我能够将实体中的属性绑定到如下的listview内容页面元素,

highlightGrid.SetBinding(IsVisibleProperty, "IsPaymentPlanEnding");

但是我想如何将此“ IsPaymentPlanEnding”属性值绑定到变量。尝试使用以下代码,但会引发编译错误。

bool IsPaymentPlanEnding = BindingContext.GetBindingValue("IsPaymentPlanEnding");

请让我知道如何将实体属性值绑定到变量。

2 个答案:

答案 0 :(得分:1)

您可以将绑定存储在这样的变量中:

BindingBase paymentPlanEndingBinding = new Binding("IsPaymentPlanEnding");

然后在进行实际绑定时引用它:

highlightGrid.SetBinding(IsVisibleProperty, paymentPlanEndingBinding);

我为此编写了一个简单的单元测试:

[Test]
public void BindingBase_test()
{
    MockForms.Init();

    BindingBase binding = new Binding("Value");

    var pickerItem = new PickerSearchItem {Value = "the_value"};

    var label = new Label {BindingContext = pickerItem};
    label.SetBinding(Label.TextProperty, binding);
    
    label.Text.ShouldBe("the_value");
}

答案 1 :(得分:0)

您的BindingContext需要实现INotifyPropertyChanged。 并且BindingContext应该包含一个名为IsPaymentPlanEnding的属性(布尔类型)。 然后,您可以直接保留以下行: highlightGrid.SetBinding(IsVisibleProperty, "IsPaymentPlanEnding");

了解有关Bindings

的信息