在按钮按事件后显示选择器



大家好,我正在开发一个CrossPlatform应用程序,该应用程序允许用户从列表中首先选择。ListView工作正常,现在我正在处理选择器,但我遇到了问题。

我似乎已经实现了" picker.selectedIndexchanged =(发件人,args)=>",用于处理列表中的新元素的选择,但我对发件人有一个问题。该错误是"错误CS0136在此范围中不能声明名为'发件人'的本地或参数,因为该名称在封闭的本地范围中使用以定义本地或参数。"

我了解此错误与func本身中均匀处理程序参数的参数发件人有关,但是由于我没有声明新变量发件人,所以这会抛出错误?以下是代码(现在只是一个模拟。这是基本的实现

private void Button_Pressed(object sender, EventArgs e)
    {
        Picker picker = new Picker
        {
            Title = "Select SubUnit",
            VerticalOptions = LayoutOptions.Center
        };
       string[] list = new string[] { "1", "2", "3", "4", "5" } ;

        foreach(string subunit in list)
        {
            picker.Items.Add(subunit);
        }
        picker.Focus();
        picker.SelectedIndexChanged += (sender, args) =>
        {
            if (picker.SelectedIndex == -1)
            {
              //ToDo. Prob unnecessary to handle.
            }
            else
            {
                string selectedSub = picker.Items[picker.SelectedIndex];
            }
        };
    }

我希望采摘器能够焦点,并允许用户在按下按钮后选择一个元素。有什么想法吗?

现在,唯一的错误是我在发件人对象上遇到的语法错误,从技术上讲,选择器没有焦点,但是我敢肯定,一旦我得到编译,我就可以弄清楚这一点。

您已经在当前范围中使用了sender

private void Button_Pressed(object sender, EventArgs e)

您需要将sender的另一个实例重命名为唯一的东西

picker.SelectedIndexChanged += (s, args) =>

最新更新