我想使用表达式主体声明只读实时属性:
public string RealTimeData => RetrievLiveData(Duration);
使用x:Bind来更新UI控件:
<TextBlock x:Name="LiveDataCtrl" Text="{x:Bind RealTimeData, Mode=OneWay}"/>
页面加载时绑定会更新,但是我找不到从页面更新绑定的方法(例如,通过单击按钮)。
由于它不是依赖属性并且不受INPC支持,因此我一直在寻找手动触发绑定的方法。
我没有运气就尝试过GetBindingExpression:
LiveDataCtrl.GetBindingExpression(WhatGoesHere?);
答案 0 :(得分:1)
GetBindingExpression
方法返回BindingExpression对象,该对象包含有关Binding而不是x:Bind
的单个实例的信息。
x:Bind
没有绑定表达式。但是对于您而言,您可以调用this.Bindings.Update();
强制其更新源。
例如:
public sealed partial class MyUserControl1 : UserControl
{
public string RealTimeData => RetrievLiveData();
public MyUserControl1()
{
this.InitializeComponent();
}
private string RetrievLiveData()
{
return DateTime.Now.ToString();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
this.Bindings.Update();
}
}