Xamarin Forms中数据更改后标签未居中

时间:2017-04-25 16:31:10

标签: xamarin xamarin.forms

在我的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的错误吗?这有解决方法吗?我需要以某种方式告诉标签刷新它的位置。我希望标签始终居中。我不知道为什么在刷新内容后它会保持对齐。

2 个答案:

答案 0 :(得分:2)

Horizo​​ntalTextAlignment和VerticalTextAlignment,在数据更改后无法正常工作。 Bug 55359为TabbedPage详细说明了这一点,但它出现在许多地方,例如Bug 49311

解决方法是暂时使用Horizo​​ntalOptions或VerticalOptions。

答案 1 :(得分:-1)

我最近遇到了这个问题。我只是创建了一个常量变量来跟踪需要更新OnResume的页面,并相应地重新分配了我的绑定。