パノラマ内にパノラマコントロールとリストボックスコントロールがあります。Panorama や ListBox コントロールに関連付けられたすべてのデータ バインディングまたは UI 表示が終了したときに、フックできる「イベント」または検出する方法はありますか?
このイベントを検出する必要があるのは、Panorama コントロールや ListBox コントロールが完全にバインドされ、レンダリングが終了した後にのみ ApplicationBar を表示したいからです。
たとえば、私の XAML は次のように定義されています。
<controls:Panorama Name="panorama">
<controls:Panorama.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Details}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Field1}"/>
<TextBlock Text="{Binding Field2}"/>
...
<TextBlock Text="{Binding FieldN}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</controls:Panorama.ItemTemplate>
</controls:Panorama>
私の昔ながらの CLR オブジェクト (POCO) は次のようになります。
public class MyPoco {
List<Detail> Details { get; set; }
}
public class Detail {
public string Field1 { get; set; }
public string Field1 { get; set; }
...
public string FieldN { get; set; }
}
私のC#コードビハインドでは、次のようにデータをバインドします。
List<MyPoco> pocos = GetMyPocosFromSomewhere();
panorama.ItemsSource = myList;
ApplicationBar.IsVisible = true; //i only want to make this visible after the Panorama and ListBox controls have finished binding and rendering
現在、上でスケッチしたコードは機能しますが、ApplicationBar は、Panorama/ListBox コントロールがレンダリングされる前に常に表示されます。私にとって、これはユーザーエクスペリエンスをぎこちなくします。
どんな助けでも大歓迎です。