我在 Xamarin Forms 中使用选择器,如果用户选择它,我将从选择器中获取选定的值。
if (loantype.Items[loantype.SelectedIndex] != null)
{
//If user selects a value , code goes here
}
但是如果用户没有从选择器中选择值,则应该检查它。我想检查它是否在对象内为空。
AddNewTeam addnewteam = new AddNewTeam
{
first_name = firstname.Text,
last_name = lastname.Text,
email = email.Text,
mobile = mobile.Text,
};
但是我得到了
System.ArgumentOutOfRangeException
已引发错误。我也尝试了不同的解决方案。
有人可以帮我解决这个问题吗?
最佳答案
安ArgumentOutOfRangeException
是索引项大于列表/数组的大小或负数的结果。 Picker
当未选择值时没有事件,但它确实有 SelectedIndexChanged
事件。例如:
<Picker
ItemsSource="{Binding LoanTypesSelection}"
SelectedIndexChanged="Handle_SelectedIndexChanged"/>
我已为此 Picker
分配了一个事件这样当索引发生变化时,它将触发 Handle_SelectedIndexChanged
,否则什么都不会发生/改变。
在处理程序中我有:
public string[] LoanTypesSelection => new string[]
{
"Student Loan",
"Mortgage"
};
void Handle_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(!(sender is Picker loantype))
{
return;
}
if ((loantype.SelectedIndex > LoanTypesSelection.Length) ||
(loantype.SelectedIndex < 0))
{
// Display an error message?
return;
}
MyLabel.Text = LoanTypesSelection[loantype.SelectedIndex]; // Or whatever
}
关于c# - Xamarin 表单选取器中的 System.ArgumentOutOfRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52871028/