我是 Wp7 新手,使用 ListPicker
开发应用程序并使用 SelectionChanged
事件从 listPicker 获取所选数据,但遇到 SelectionChanged
问题> 事件当我使用这个并获取 NullReferenceException
但当我在 button_Click
中使用相同的代码时,它完美地工作并获取所选文本
我的 C# 代码是:
private void listPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListPickerItem lpi = (ListPickerItem)listPicker1.SelectedItem;//this code is working in click event
MessageBox.Show(lpi.Content.ToString());
}
我的Xaml代码是
<toolkit:ListPicker x:Name="listPicker1" Grid.Row="0" ExpansionMode="ExpansionAllowed" SelectionChanged="listPickerCountryLogin_SelectionChanged" HorizontalAlignment="Left" Margin="14,43,0,0" VerticalAlignment="Top" Width="436" FullModeHeader="Select Country" Background="White" BorderBrush="White">
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Country}" Width="250" />
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Country}" Width="300" Margin="0,0,0,20" FontSize="44"/>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
但我想获取文本表单 SelectionChanged
事件?
如何实现这一目标:)
提前致谢
最佳答案
我也遇到了同样的问题,我也遇到了NullReferenceException
试试这个对我来说效果很好
1) 如果您使用静态 ListPickerItems
意味着没有 DataBinding
使用此
private void listPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListPickerItem lpi = (sender as ListPicker).SelectedItem as ListPickerItem;
MessageBox.Show("selected item is : " + lpi.Content);
}
2) 如果您使用 DataBinding
来显示 listPickerItems
,请尝试此操作
private void listPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Countries item = (sender as ListPicker).SelectedItem as Countries;
MessageBox.Show("Selected Item is : " + item.Country);
}
这里假设您准备了一个具有 country
属性的类 Countries
,您需要将所选项目键入到 Countrys 类,然后只有您才能得到结果
关于windows-phone-7 - 如何在wp7中使用列表选择器selectionChanged事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14577520/