如何在UWP应用中通过x:Bind使用只读的表达式主体属性

时间:2018-12-07 08:29:03

标签: c# xaml uwp

我想使用表达式主体声明只读实时属性:

    public string RealTimeData => RetrievLiveData(Duration);

使用x:Bind来更新UI控件:

 <TextBlock x:Name="LiveDataCtrl" Text="{x:Bind RealTimeData, Mode=OneWay}"/>

页面加载时绑定会更新,但是我找不到从页面更新绑定的方法(例如,通过单击按钮)。

由于它不是依赖属性并且不受INPC支持,因此我一直在寻找手动触发绑定的方法。

我没有运气就尝试过GetBindingExpression:

    LiveDataCtrl.GetBindingExpression(WhatGoesHere?);

1 个答案:

答案 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();
    }
}