2017-04-25 9 views
0

フォームアプリケーションをフォームI持っレーベル:ViewModelにでラベルは私のXamarinで

<Label Text="{Binding Number}" HorizontalTextAlignment ="Center"> 

:メッセージが受信されると

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から「NUMBER_CHANGED」メッセージがトリガされた場合、NumberはUIで更新され、Numberを含むラベルは適切に中央に配置されます

MainPageから、PushAsync SecondPageを使用できます。 SecondPageから "NUMBER_CHANGED"をトリガーすることもできます。それをトリガしてMainPageに戻ると、Numberが更新され、のラベルには適切な値がありますが、中央に置かれる代わりにのままになります。

このXamarin UIのバグはありますか?このための回避策はありますか?私は何とかラベルを伝えてその位置をリフレッシュする必要があります。ラベルを常に中央に揃えたい。私はそれが内容をリフレッシュした後に整列されたままになっている理由は分かりません。

+0

XAMLに 'XAlign =" Center "'を追加すると、違いはありますか? –

+0

個々のラベルを整列させるのではなく、アプリの幅の中央に配置するスタティックレイアウトにラベルをラップしたい場合があります – SergioAMG

+1

多くの場合、Horizo​​ntalText/VerticalTextAlignmentが見つからないため常に動的に更新するものに対して正しく動作します。私はまた、この問題がForms 2.3.4ではさらに悪くなっていることに気がつきました。ほとんどの場合、ほとんどの場合、Horizo​​ntal/VerticalOptionsに切り替わったばかりですが、パフォーマンスが多少強化されています。 – Nick

答えて

1

Horizo​​ntalTextAlignmentおよびVerticalTextAlignmentは、データ変更後に機能しない既知のバグです。 Bug 55359これはタブ付きページの詳細ですが、多くの場所で発生します(Bug 49311など)。

回避策は、現時点ではHorizo​​ntalOptionsまたはVerticalOptionsを使用することです。

-1

最近この問題が発生しました。私は単にOnResumeを更新する必要があるページを追跡するために定数変数を作成し、それに応じてバインディングを再割り当てしました。

関連する問題