AppBarButton се задейства на случаен принцип, след като приложението е компилирано за пускане

Разработвам ново приложение с VS 2013 за Windows Phone 8.1 (WinRT) и получавам отчаян, че понякога работи, а понякога не работи. Трябва да компилирам N пъти един и същ проект, за да направя този един елемент да работи. Това е моят код.

XAML:

<Page.BottomAppBar>
    <CommandBar x:Name="appBar">
        <AppBarButton x:Name="btnNew" Icon="Add" IsCompact="False" Label="new result" Click="btnNew_Click"/>
        <AppBarButton x:Name="btnShare" IsCompact="False" Label="share" Click="btnShare_Click">
            <AppBarButton.Icon>
                <BitmapIcon UriSource="Assets/AppBar/share.png"/>
            </AppBarButton.Icon>
        </AppBarButton>
        <CommandBar.SecondaryCommands>
            <AppBarButton x:Name="menuPersonal" Label="profile" Click="menuPersonal_Click"/>
            <AppBarButton x:Name="menuTips" Label="tips" Click="menuTips_Click"/>
            <AppBarButton x:Name="menuHelp" Label="help" Click="menuHelp_Click"/>
            <AppBarButton x:Name="menuAbout" Label="about us" Click="menuAbout_Click"/>
        </CommandBar.SecondaryCommands>
    </CommandBar>
</Page.BottomAppBar>

C#:

private void menuTips_Click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(Tips));
}

private void menuPersonal_Click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(Personal));
}

private void btnShare_Click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(Share), txtLast.Text);
}

private void btnNew_Click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(OcrResult));
}

private void menuHelp_Click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(Help));
}

private void menuAbout_Click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(About));
}

Проблемът възниква САМО в опцията меню Профил.

Когато не работи, VS ми показва този вид съобщение, след като щракна върху бутона.

Нишката 0xb08 е излязла с код 259 (0x103).

Нишката 0x1b0 е излязла с код 259 (0x103).

Какво вече опитах:

  • Промених името на класа, който трябва да заредя.
  • Пресъздадохте рамката.
  • Преместихте местоположението на елемента.
  • Променено е името на функцията.
  • Създадена е една функция за всички опции (няма значение дали добавя точка на прекъсване, не мога да знам защо не работи).
  • Опитах събитието Tapped (същият проблем).
  • Добавени са няколко опитни уловки навсякъде.

Трябва да поясня, че този проблем се случва дори в друг форум, където извиквам същия Frame и той не го отваря и там.

Дори всяка точка на прекъсване не работи, когато приложението даде тази грешка. Бих искал да знам дали някой е експериментирал с този проблем и ако някой го е преживял, може би някой би бил така любезен да ми даде идея как да го поправя.

Благодаря ви за достойните знания и отделеното време.


person Federico Navarrete    schedule 28.02.2015    source източник
comment
А другите бутони работят ли - навигацията до страниците успешна ли е? Можете ли да проверите в режим на отстраняване на грешки дали се извиква конструктор на страница Personal? Освен това - извиква ли се събитие frame.NavigationFailed?   -  person Romasz    schedule 28.02.2015
comment
Всички бутони работят с изключение на този и понякога всички работят, но когато някой се провали е точно това. Другата рамка като не работи, никога не се отваря и менюто просто се затваря все едно няма код.   -  person Federico Navarrete    schedule 28.02.2015
comment
Как изглежда вашата страница с профил? Когато навигирате с първия бутон до страницата Помощ вместо Профил - работи ли добре?   -  person Romasz    schedule 28.02.2015
comment
Да, всички бутони работят и понякога, когато компилирам другия.   -  person Federico Navarrete    schedule 28.02.2015
comment
Не съм сигурен, но е вероятно да има проблем в страницата ви Профил - можете ли да покажете кода й?   -  person Romasz    schedule 28.02.2015
comment
Ще се върна след половин час и ще го споделя :), благодаря, но както ви казах, когато приложението даде тази грешка, няма значение дали добавя точка на прекъсване в бутона, той не работи и когато работи, работи точката на прекъсване.   -  person Federico Navarrete    schedule 28.02.2015


Отговори (2)


Сигурен ли сте, че няма проблем нито в конструктора, нито в събитието ONNavigatedTo на целевата страница? Знам, че звучи налудничаво, но опитайте да поставите Frame.Navigate to dispatcher block като: this.Frame.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(()=> Frame.Navigate(typeof(SomePage))));

дори и да е

не е необходимо да се извиква в UI поток...

person jkulhanek    schedule 28.02.2015

Открих, че проблемът е свързан с тези библиотеки:] https://www.nuget.org/packages/WinRTXamlToolkit.Controls.DataVisualization/ http://winrtxamltoolkit.codeplex.com/

След като смених графиката с друга, всичко работи. Препоръчвам на всеки, който използва тези библиотеки, да се грижи за тях.

person Federico Navarrete    schedule 28.02.2015