C# 如何获取用户在xamarin表单中从选择器中选择的数据?我想在switch语句中使用它

C# 如何获取用户在xamarin表单中从选择器中选择的数据?我想在switch语句中使用它,c#,xamarin,xamarin.forms,picker,C#,Xamarin,Xamarin.forms,Picker,我不知道如何获取用户从选择器中选择的数据 在冲突中,使用SelectedIndex更改哪一个,以便在用户改变主意时告诉我,或使用selecteditem告诉我用户选择了哪一个 public MainPage() { InitializeComponent(); drainquatity(); } void drainquatity() { drain.Items.Add("1"); drain.Items.Add("2");

我不知道如何获取用户从选择器中选择的数据

在冲突中,使用SelectedIndex更改哪一个,以便在用户改变主意时告诉我,或使用selecteditem告诉我用户选择了哪一个

public MainPage()
 {
        InitializeComponent();
        drainquatity();
 }
void drainquatity()
{
        drain.Items.Add("1");
        drain.Items.Add("2");
        drain.Items.Add("3");
        drain.Items.Add("4");
        drain.Items.Add("5");
        drain.Items.Add("6");
        drain.Items.Add("7");
        drain.Items.Add("8");
        drain.Items.Add("9");
        drain.Items.Add("10");

        return;
 }

<Picker x:Name="drain" Title="Drain #" Margin="190,-30,50,0" 
"SelectedItem="drainx" />  
public主页()
{
初始化组件();
排水量();
}
空隙排水量()
{
排水管。项目。添加(“1”);
排水管。项目。添加(“2”);
排水管。项目。添加(“3”);
排水管。项目。添加(“4”);
排水管。项目。添加(“5”);
排水管。项目。添加(“6”);
排水管。项目。添加(“7”);
排水管。项目。添加(“8”);
排水管。项目。添加(“9”);
排水管。项目。添加(“10”);
返回;
}
专家解释了所有这些

// get the index/position of the selected item
// -1 means no selection
int ndx = drain.SelectedIndex;

// get the value of the selected item
// null means no selection
string item = (string)drain.SelectedItem;

// set an event handler to fire when an item is selected
<Picker x:Name="drain" Title="Drain #" Margin="190,-30,50,0" 
SelectedIndexChanged="ItemSelected" />  

protected void ItemSelected(object sender, EventArgs args)
{
}
//获取所选项目的索引/位置
//-1表示没有选择
int ndx=drain.SelectedIndex;
//获取所选项目的值
//null表示没有选择
字符串项=(字符串)drain.SelectedItem;
//将事件处理程序设置为在选择项时激发
已选择受保护的无效项(对象发件人、事件args args)
{
}

public void Drain\u SelectedIndexChanged(对象发送方,事件参数e)
{
如果(drain.SelectedIndex==-1)
{
//信息
} 
其他的
{                
字符串项=(字符串)drain.SelectedItem;
显示警报(选择编辑项“确定”、“确定”);
}
}

它正在抛出异常system.nullreferenceexception已被抛出。使用此选项时,对象引用未设置为对象的实例:public MainPage(){//var drainxy=drain.Items[drain.SelectedIndex];string item=(string)drain.SelectedItem;InitializeComponent();drainQuality();开关(item){case“1”:DisplayAlert(item,“switch”,“K”);break;默认值:break;}//当用户更改或选择新的选择时,会触发此命令。void ItemSelected(object sender,System.EventArgs e){//若要获取值,用户选择的var drainx=drain.Items[drain.SelectedIndex];显示警报(drainx,“选定值”,“确定”);}//此警报首先工作,“异常”没有帮助。哪个特定异常,以及哪一行导致该异常?第二,如果在页面构造函数中执行此操作,则SelectedItem将为null,因为用户尚未执行任何操作。这就是SelectedIndexChanged事件处理程序的作用。
<Picker x:Name="drain" Title="Drain #" SelectedIndexChanged="Drain_SelectedIndexChanged"/>  


public void Drain_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (drain.SelectedIndex == -1) 
            {
                //Message
            } 
            else
            {                
                 string item = (string)drain.SelectedItem;
                DisplayAlert (selectedItem, "OK", "OK");
            }
        }