我能够将实体中的属性绑定到如下的listview内容页面元素,
highlightGrid.SetBinding(IsVisibleProperty, "IsPaymentPlanEnding");
但是我想如何将此“ IsPaymentPlanEnding”属性值绑定到变量。尝试使用以下代码,但会引发编译错误。
bool IsPaymentPlanEnding = BindingContext.GetBindingValue("IsPaymentPlanEnding");
请让我知道如何将实体属性值绑定到变量。
答案 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
的信息