我在将事件处理程序添加到 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"..." 时,不会引发异常。有谁知道发生了什么?