在我的Xamarin Forms应用程序中,我有标签:
<Label Text="{Binding Number}" HorizontalTextAlignment ="Center">
在ViewModel中:
private int _number;
public int Number
{
get { return _number; }
set { SetProperty(ref _number, value); }
}
收到消息后,我更新号码:
MessagingCenter.Subscribe<EmptyMessage>(this, "NUMBER_CHANGED", OnNumberChanged);
private async void OnNumberChanged(EmptyMessage emptyMessage)
{
Number = ReadNumberFromDB();
}
所有这些都在MainPage上。当从MainPage触发“NUMBER_CHANGED”条消息时,会在UI上更新号码,并且包含号码的标签正确居中。
从MainPage,可以推送PushAsync SecondPage。从SecondPage“NUMBER_CHANGED”也可以被触发。触发并返回MainPage后,数字会更新,包含它的标签具有正确的值,但不是居中,而是左对齐。
这是Xamarin UI的错误吗?这有解决方法吗?我需要以某种方式告诉标签刷新它的位置。我希望标签始终居中。我不知道为什么在刷新内容后它会保持对齐。