使用 C# 在 Xamarin 上以编程方式编写对象 ID 名称

Programmatically compose object Id Name on Xamarin with C#

我需要向函数传递一个 ImageButton 但 ID 取决于按下的键(例如,如果用户按下 'x' 键,我需要传递 'Button_x' 因为我必须更改按钮的源图像)。

string IDButton = "Button_key" + letter.ToString().ToUpper();  //ex. Button_keyX
ImageButton btn = new ImageButton();
btn.Id = IDButton;
function_that_changes_button_image_source(btn);

问题是 'Id' 是只读的。 有什么办法吗?

谢谢

我认为 function_that_changes_button_image_source 应该只接受 id 而不是整个按钮对象。

我已经解决了,谢谢大家

我用过this.ViewControls.FindByName(IDButton)

private void myFunc()
{
    string IDButton = "Button_key" + letter.ToString().ToUpper();   //ex: Button_keyP if letter value is 'p'
    object btn = this.ViewControls.FindByName(IDButton) as object;

    function_that_changes_button_image_source(letter.ToString().ToLower(), btn);
    ...
}

 private void PutTheXon(string letter, object bottone)
{
    
    ImageButton btn2change = (ImageButton)bottone;
    btn2change.IsEnabled = false;
    btn2change.Source = ImageSource.FromFile("x_" + letter.ToLower() + "_pb.png");  //changes the source image 'x_p_pb.png' if letter value is 'p'
}