Как использовать свойства тела выражения только для чтения с x: Bind в приложениях UWP - PullRequest
0 голосов
/ 07 декабря 2018

Я хотел бы объявить свойства только для чтения в реальном времени, используя тело выражения:

    public string RealTimeData => RetrievLiveData(Duration);

Использовать x: Bind для обновления элементов управления пользовательского интерфейса:

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

Привязка обновляется, когдастраница загружается, но я не могу найти способ обновить привязку со страницы (например, нажатием кнопки).

Поскольку это не свойство зависимости и не поддерживается INPC, я искалспособы запуска привязки вручную.

Я пробовал GetBindingExpression без удачи:

    LiveDataCtrl.GetBindingExpression(WhatGoesHere?);

1 Ответ

0 голосов
/ 10 декабря 2018

Метод 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...