c# - Xamarin 表单选取器中的 System.ArgumentOutOfRangeException

标签 c# xamarin xamarin.forms

我在 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/

相关文章:

c# - 抛出异常 : 'OpenQA.Selenium.WebDriverException' in WebDriver. dll

security - 客户端证书和证书固定之间的区别,我需要两者吗?

xamarin - Skia View 中的透明部分

xamarin.ios - MvvmCross - 适用于 Android 和 iOS 的弹出式导航、汉堡菜单、滑动菜单

c# - 如何使用图标、占位符标签和带弯角的边框构建自定义 Xamarin 表单条目?

c# - Xamarin UI 测试 : Is it possible to interact with the OS level dialogues during UITesting

c# - 数据表和 LINQ 父/子关系

c# - 基本 C# 语法问题

c# - 如何简化此 C# if/else 语法

Xamarin iOS Crashlytics DSYM 文件