C# 如何动态添加选择器
我的屏幕上有一个按钮,当我按下按钮时,我希望选择器显示一个项目列表,当选择一个项目时,按钮的文本应更改为该按钮,选择器应消失 这是我的代码:C# 如何动态添加选择器,c#,xamarin,xamarin.forms,picker,C#,Xamarin,Xamarin.forms,Picker,我的屏幕上有一个按钮,当我按下按钮时,我希望选择器显示一个项目列表,当选择一个项目时,按钮的文本应更改为该按钮,选择器应消失 这是我的代码: Picker picker = new Picker { Title = "What's in the slot?", VerticalOptions = LayoutOptions.CenterAndExpand //HorizontalOptions = LayoutOptions.Center
Picker picker = new Picker
{
Title = "What's in the slot?",
VerticalOptions = LayoutOptions.CenterAndExpand
//HorizontalOptions = LayoutOptions.Center
};
以及按下按钮时调用的功能:
private void Displaypickerview(int row, int column)
{
if (status == "filling board")
{
foreach (string text in pickerText)
{
picker.Items.Add(text);
}
foreach (string ore in oreLevels)
{
picker.Items.Add(ore);
}
picker.SelectedIndexChanged += (sender, args) =>
{
if (picker.SelectedIndex == -1)
{
}
else
{
//change value of cell and button
Picker picker = (Picker)sender;
int index = picker.SelectedIndex;
if (index < pickerText.Length)
{
board[row, column].Text = pickerText[index - 1];
}
else {
board[row, column].Text = oreLevels[index - 1 - pickerText.Length];
}
}
};
}
else if (status == "choosing item")
{
}
}
private void Displaypickerview(int行,int列)
{
如果(状态=“填充板”)
{
foreach(pickerText中的字符串文本)
{
picker.Items.Add(文本);
}
foreach(矿层中的矿柱)
{
选择器。项目。添加(矿石);
}
picker.SelectedIndexChanged+=(发件人,参数)=>
{
if(picker.SelectedIndex==-1)
{
}
其他的
{
//更改单元格和按钮的值
选择器选择器=(选择器)发送器;
int index=picker.SelectedIndex;
如果(索引
但我不知道如何在屏幕上呈现picker视图,然后将其删除
更新:
下图中“完成”按钮的eventhandler是什么
您可以通过将选择器添加到
子集合,将其添加到您的网格
或您正在使用的任何面板
:
Grid.SetRow(picker, 0); //first row
Grid.SetColumn(picker, 0); //first column
grid.Children.Add(picker);
grid.Children.Remove(picker);
类似地,您可以通过将其从子集合中删除来删除它:
Grid.SetRow(picker, 0); //first row
Grid.SetColumn(picker, 0); //first column
grid.Children.Add(picker);
grid.Children.Remove(picker);
我有一个button网格,所以它不会删除第一行和第一列上的按钮grid.SetRow/grid.SetColumn方法设置元素的附加grid.row和grid.Column属性,即它指定元素(选择器)将位于网格中的哪一行和哪一列。然后删除传递给remove方法的项。当按下done按钮时,应该调用remove函数,但是done按钮的代码是什么?我已经向您演示了如何从网格中删除选择器。只需在按钮点击事件处理程序中执行此操作:按钮。点击+=(ss,ee)=>grid.Children.Remove(picker);看来你已经设法添加了选择器了?如果您有新问题,请提出新问题。