我无法将事件处理程序添加到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“...”时,不会抛出异常。有没有人知道发生了什么?
答案 0 :(得分: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)