簡體   English   中英

Xamarin Forms 綁定 Label 文本無效

[英]Xamarin Forms Binding Label Text not working

我知道之前已經多次回答過這個問題,並且我已經遵循了所有可能的指南。 它不起作用。

這是我的代碼:

XAML

<Label Text="{Binding Path=StatusMessage, Mode=TwoWay}"
       Margin="10,0,10,5"
       VerticalOptions="End"/>

C#

    private string statusMessage;
    public string StatusMessage { 
        get { return statusMessage; }
        set
        {
            statusMessage = value;
            OnPropertyChanged(nameof(StatusMessage));
        }
    }
    
    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

class 擴展INotifyPropertyChanged並修改 label 文本我嘗試了StatusMessage = "Status: ..."; Device.BeginInvokeOnMainThread(() => { StatusMessage = "Status: ...";}); .

什么都不管用。

知道如何解決這個問題嗎?

編輯

添加BindingContext = this; 正如主要幫助中所建議的那樣。

現在它不會從不同線程調用的代碼更新 label,如下所示

private void OnEnableUser(bool authenticated)
{
    if (SynchronizationContext.Current != null)
    {
        [...]
    } else
    {
        Device.BeginInvokeOnMainThread(() =>
        {
            OnEnableUser(authenticated);
        });
    }
}

您是否在后面的代碼中設置了 DataContext?

this.DataContext = classWithStatusMessage;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM