0

我在将事件处理程序添加到 Windows phone 8 的 XAML 中的 AutoCompleteBox 时遇到了麻烦。它以前工作过,但是因为我在它周围移动了一些东西,所以它不再起作用了。以下是我的 MainPage.xaml 的摘录:

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <Grid Margin="0,0,0,407">
            <Grid.RowDefinitions>
                <RowDefinition Height="50"/>
                <RowDefinition Height="70"/>
                <RowDefinition Height="50"/>
                <RowDefinition Height="70"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*"/>
                <ColumnDefinition Width="3*"/>
            </Grid.ColumnDefinitions>

            <TextBlock Text="Start:" FontSize="35"/>
            <toolkit:AutoCompleteBox Grid.Row="1" x:Name="autoStadtStart" ItemsSource="{Binding Towns}" Text="Stadt" Tap="AutoCompleteBox_Click" LostFocus="AutoCB_Town_Reset"/>
            <toolkit:AutoCompleteBox Grid.Row="1" Grid.Column="1" x:Name="autoBusStopStart" ItemsSource="{Binding BusStops}" Margin="1,0,-1,0" Text="Haltestelle" Tap="AutoCompleteBox_Click" LostFocus="AutoCB_BusStop_Reset"/>

            <TextBlock Grid.Row="2" Text="Ziel:" FontSize="35"/>
            <toolkit:AutoCompleteBox Grid.Row="3" x:Name="autoStadtZiel" ItemsSource="{Binding Towns}" Text="Stadt" Tap="AutoCompleteBox_Click" LostFocus="AutoCB_Town_Reset"/>
            <toolkit:AutoCompleteBox Grid.Row="3" Grid.Column="1" x:Name="autoBusStopZiel" ItemsSource="{Binding BusStops}" Margin="1,0,-1,0" Text="Haltestelle" Tap="AutoCompleteBox_Click" LostFocus="AutoCB_BusStop_Reset"/>

        </Grid>
    </Grid>

...这是 MainPage.xaml.cs 中的相应代码:

    private void AutoCompleteBox_Click(AutoCompleteBox sender, System.Windows.Input.GestureEventArgs e)
    {
        sender.Text = "";
    }

    private void AutoCB_BusStop_Reset(AutoCompleteBox sender, System.Windows.Input.GestureEventArgs e)
    {
        if (sender.Text.Equals(""))
            sender.Text = "Haltestelle";
    }

    private void AutoCB_Town_Reset(AutoCompleteBox sender, System.Windows.Input.GestureEventArgs e)
    {
        if (sender.Text.Equals(""))
            sender.Text = "Stadt";
    }

当我从 AutoCompleteBox 控件中删除 Tap="..." 和 LostFocus"..." 时,不会引发异常。有谁知道发生了什么?

4

1 回答 1

1

您的方法的签名是错误的。它应该是:

private void AutoCompleteBox_Click(object sender, System.Windows.Input.GestureEventArgs e) 

private void AutoCB_BusStop_Reset(object sender, System.Windows.RoutedEventArgs e)

private void AutoCB_Town_Reset(object sender, System.Windows.RoutedEventArgs e)
于 2013-02-20T18:31:27.450 回答