У меня проблемы с добавлением элементов панорамы через код.
Вот тестовый xaml, который работает.
<controls:Panorama x:Name="pano">
<controls:Panorama.Title>...</controls:Panorama.Title>
<controls:Panorama.Background>...</controls:Panorama.Background>
<local:TestPanoramaItem ...></local:HoroscopePanoramaItem>
<local:TestPanoramaItem ...></local:HoroscopePanoramaItem>
<local:TestPanoramaItem ...></local:HoroscopePanoramaItem>
</controls:Panorama>
TestPanoramaItem - это класс, который наследует от PanoramaItem, и в xaml все работает нормально.Теперь я хочу изменить порядок элементов панорамы с помощью кода.
РЕДАКТИРОВАТЬ: Теперь я удалил элементы из xaml
Я сделал порядок по умолчанию в статической строке, такой как "pan1, pan2, pan3, ... "и на OnNavigatedToHandler (в MainPage) я использую такой код:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
String[] order = App.Order.Split(',');
App.items.Clear();
foreach (String o in order)
{
switch (o)
{
case "pan1": App.items.Add(App.pan1); break;
case "pan2": App.items.Add(App.pan2); break;
case "pan3": App.items.Add(App.pan3); break;
...
}
}
pano.Items.Clear();
foreach (TestPanoramaItem ti in App.items)
pano.Items.Add(ti);
base.OnNavigatedTo(e);
}
При первом вызове (это в MainPage) все выглядит нормально.Панорама работает.Там у меня есть кнопка меню, которая переходит к настройкам, где я могу изменить порядок элементов.В обработчике OnNavigateFrom на странице настроек я обновляю статическую строку App.Order.После этого снова вызывается OnNavigatedTo главной страницы, и все идет хорошо (без исключений), но я не могу переместить панораму, и в панораме элементы разбиты.
Любая помощь или решения?