大家好,我正在开发一个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) =>