私は部分的なCarouselLayoutでアプリケーションを作成しました。Xamarin Forms PCL - Navbarタイトルは動的に更新されません
MessagingCenter.Subscribe<CarouselLayout, string>(this, "ContentChanged", (sender, arg) =>
{
Debug.WriteLine("ContentChanged rootpage subscribe");
UpdateDateTitle();
});
public void UpdateDateTitle()
{
this.Title = _viewModel.CurrentPage.RegList.First().DateTime.ToString("D");
}
:私はMessageCenter
MessagingCenter.Send<CarouselLayout, string>(this, "ContentChanged", "123");
で、私はそれのために聞いている私のRootPageにメッセージを送るよ、と、私はタイトルを更新したいcontentChangedレイアウトで
デバッグ出力とタイトルで、新しい日付で更新されていることがわかります。ただし、実際のナビゲーションバーのタイトルは更新されません。
ただし、初期ロード時に設定されます。
何が間違っていますか?
複数のプラットフォームで試しましたか?あなたの 'RootPage'はどんなタイプですか? James Montemagnoが[Evolve app](https://github.com/xamarinhq/app-evolve/blob/master/src/XamarinEvolve.Clients.UI/Pages/Speakers)に汗をかいていないように見えるので、これはうまくいくはずです。 /SpeakerDetailsPage.xaml.cs) –
私はDevice.BeginInvokeOnMainThreadで実装しました。その動作は悪い習慣ですか? - 私のルートページはContentPageです –
ああ良い!それは悪い習慣ではありません。あなたが行く方法である別のスレッドからUIの何かを更新したい場合: –