[英]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.