C# Xamarin.forms-3个具有3种不同更改方法的选择器会被混淆
我有三个选择者:C# Xamarin.forms-3个具有3种不同更改方法的选择器会被混淆,c#,xamarin.forms,C#,Xamarin.forms,我有三个选择者: <Picker x:Name="CommunityPicker" Title="Select Community" WidthRequest="400" ItemDisplayBinding="{Binding Description}" SelectedIndexChanged="communityChange" /> <Picker x:Name="LotPicker" Title="Select Lot" WidthRequest="400" ItemD
<Picker x:Name="CommunityPicker" Title="Select Community" WidthRequest="400" ItemDisplayBinding="{Binding Description}" SelectedIndexChanged="communityChange" />
<Picker x:Name="LotPicker" Title="Select Lot" WidthRequest="400" ItemDisplayBinding="{Binding Lot}" SelectedIndexChanged="lotChange" />
<Picker x:Name="ModelPicker" Title="Select Model" WidthRequest="400" ItemDisplayBinding="{Binding Description}" SelectedIndexChanged="modelChange" />
当我第一次使用选择器时,一切正常,但当我选择另一个选项时,我得到以下错误:
对象引用未设置为对象的实例
在我获取所选值的行上…由于某种原因,我在错误的方法上获取此错误…即当我要更改CommunityPicker的值时,我获取LotPicker的方法
我做错了什么?我不知道你应用程序的其他代码。但我通过一个简单的演示重现了这个问题。你可以检查一下 我通过确定值是否为null来解决这个问题,然后相应地处理它,您可以参考它:
private void RegionPicker_SelectedIndexChanged(object sender, EventArgs e)
{
Region region = ((sender as Picker).SelectedItem as Region);
if (region != null)
{
StreetPicker.ItemsSource = region.Streets;
}
else {
StreetPicker.ItemsSource = null;
}
}
因此,您可以尝试这样做(其他选择器也是如此):
希望它能帮助你
private void RegionPicker_SelectedIndexChanged(object sender, EventArgs e)
{
Region region = ((sender as Picker).SelectedItem as Region);
if (region != null)
{
StreetPicker.ItemsSource = region.Streets;
}
else {
StreetPicker.ItemsSource = null;
}
}
LotClass temp = (sender as Picker).SelectedItem as LotClass);
if(temp!=null){
}else{
}