У меня есть элемент управления Panorama и элементы управления ListBox внутри Panorama. есть ли какое-либо «событие», которое я могу подключить или каким-либо образом обнаружить, когда завершены все привязки данных или пользовательский интерфейс, связанные с элементами управления Panorama и/или ListBox?как обнаружить, когда привязка данных к элементам пользовательского интерфейса (панорама и список) завершена в Windows Phone 7?
Причина, по которой я должен обнаружить это событие, заключается в том, что я хочу показать ApplicationBar только после того, как элементы управления Panorama и/или ListBox полностью привязаны и закончили рендеринг.
например, мой 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; }
}
in my C# code-behind, я связываю данные следующим образом.
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 оказала. для меня это делает пользователя неудобным.
всякая помощь приветствуется.
спасибо. что действительно помогло облегчить симптом. –
Только для записи это означает * любые * изменения в пользовательском интерфейсе. Регулярные изменения непосредственно в потоке пользовательского интерфейса принудительно завершаются, где при запуске BeginInvoke. –