Как получить название кнопки программно xamarin формы - PullRequest
0 голосов
/ 07 сентября 2018

Как я могу получить кнопку с именем programatcalliy. У меня есть 3 кнопки в файле axml button1, button2, buttton3.

button1.Clicked += delegate {

    ButtonStyle(button2);
};

Метод ButtonStyle

void ButtonStyle(Button btn)
{
    var id = btn.Id;
    btn.BackgroundColor = Color.Blue;
    btn.CornerRadius = 1;
    btn.BorderColor = Color.Red;
}

Здесь var id = btn.Id; хотите получить Имя кнопки, но получить что-то вроде GUID. Как я могу получить название кнопки. Во время отладки я вижу его в base, но не могу получить

enter image description here

1 Ответ

0 голосов
/ 07 сентября 2018

Вам следует изучить подходы Binding и Mvvm, когда речь идет о формах Xamarin.Однако из того, что вы объяснили в комментариях и текущем подходе, я бы добавил все кнопки в список и перебрал каждую из них так:

List<Button> buttons = new List<Button>();
buttons.Add(button1);
buttons.Add(button2);
buttons.Add(button3);

button1.Clicked += delegate {

    ButtonStyle(button1);
};
button2.Clicked += delegate {

    ButtonStyle(button2);
};
button3.Clicked += delegate {

    ButtonStyle(button3);
};

void ButtonStyle(Button btn)
{

    foreach (var button in buttons)
    {
        if (button.Id == btn.Id)
        {
            button.BackgroundColor = Color.Blue;
            button.CornerRadius = 1;
            button.BorderColor = Color.Red;
            button.TextColor = Color.White;
        }
        else
        {
            button.BackgroundColor = Color.White;
            button.CornerRadius = 1;
            button.BorderColor = Color.Gray;
            button.TextColor = Color.Blue;
        }
    }
}

Или просто вы можете просто отключить кнопку.Это должно сделать его снова другим цветом.Так что внутри цикла вместо настроек все свойства просто идут:

button.IsEnabled = false;

И тот, который вы хотите иметь правильные цвета:

button.IsEnabled = true;

Вы также можете добавить стиль с помощью:

button.Style = YourStyle;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...