Я работаю над проектом UWP. У меня есть две кнопки для перехода с одной страницы на другую. Но я не понимаю, почему кнопка никогда не вызывается, пробую разные уроки и техники, это не работает.

<Page
    x:Class="MultiplatformMvvm.UWP.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MultiplatformMvvm.UWP"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
        <ResourceDictionary>

            <Style x:Key="textBlockStyle" TargetType="TextBlock">
                <Setter Property="Margin" Value="12,20,12,12"/>
                <Setter Property="HorizontalAlignment" Value="Center"/>
                <Setter Property="FontSize" Value="24"/>
            </Style>

            <Style x:Key="buttonStyle" TargetType="Button">
                <Setter Property="Margin" Value="12"/>
                <Setter Property="HorizontalAlignment" Value="Center"/>
                <Setter Property="Background" Value="Purple"/>
                <Setter Property="Foreground"  Value="White"/>
            </Style>

        </ResourceDictionary>
    </Page.Resources>

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <StackPanel>
            <TextBlock Text="Un café !" Style="{StaticResource textBlockStyle}"/>
            <Button x:Name="coffeeButton" Style="{StaticResource buttonStyle}" >
                Go Coffee
            </Button>
            <Button x:Name="myContactsButton" Style="{StaticResource buttonStyle}">
                My contacts
            </Button>
        </StackPanel>
    </Grid>
</Page>

Мой код C #:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        InitializeComponent();
        coffeeButton.Click += coffeeButton_Click;
    }

    void coffeeButton_Click(object sender, RoutedEventArgs e)
    {
        // I never enter here
        Frame.Navigate(typeof(CoffeeListPage));
    }

    private void myContactsButton_Click(object sender, RoutedEventArgs e)
    {
        // I never enter here
        Frame.Navigate(typeof(ContactListPage));
    }
}
1
fandro 25 Ноя 2016 в 18:04

2 ответа

Лучший ответ

Я, наконец, очищаю весь кеш в проекте UWP и перестраиваю, и, наконец, он работает. Надеюсь, это кому-то поможет.

1
fandro 6 Дек 2016 в 08:16

Вы пробовали: - Прикрепить обработчик к кнопке в самом xaml и увидеть, что он работает? - Если вы используете привязки, то добавляете привязку команды?

Также в вашем сценарии попробуйте следующее: в конструкторе после InitializeComponent (); добавлять:

Загружено + = (s, e) => {coffeeButton.Click + = coffeeButton_Click; };

Посмотрим, работает ли это.

1
Jinish 25 Ноя 2016 в 15:11