UWP按钮没有触发事件

时间:2016-11-25 15:04:10

标签: c# xaml uwp

我正在开展一个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));
    }
}

2 个答案:

答案 0 :(得分:1)

你试过了吗? - 将处理程序附加到xaml中的按钮,看看它是否有效? - 如果您正在使用Bindings,那么添加命令绑定?

同样在您的方案中,试试这个: 在InitializeComponent()之后的构造函数中;添加:

已加载+ =(s,e)=&gt; {coffeeButton.Click + = coffeeButton_Click; };

看看是否有效。

答案 1 :(得分:1)

我最终清理了UWP项目中的所有缓存并重建,它终于可以工作了。 希望它可以帮到某人。