RUDE

Назначение свойства x:Name флажку в исходном коде [Xamarin/C#]

Здравствуйте, у меня есть набор флажков, которые генерируются из исходного кода, а не в XAML. Теперь я хотел установить x:Name во время его создания, чтобы я мог перебирать каждый элемент с помощью FindByName. Я планировал установить имя, например, checkbox1, checkbox2, checkbox3...

Чтобы я мог использовать этот FindByName

        foreach (var  qaItem in question.Entity.QuestionAnswer)
        {
            (FindByName($"checkbox{qaItem.OrderNum}") as CheckBox).IsChecked = false;
        }

Есть ли способ установить «x: Name» в источнике? так как количество флажков не определено.


25
1

Ответ:

Решено

X:Name на самом деле не является свойством, это просто помощник XAML, который используется для создания имени переменной C#. Если вы создаете элементы во время выполнения, вам необходимо поддерживать массив или список, чтобы отслеживать их.

Вы могли бы сделать что-то вроде этого

Dictionary<string,Checkbox> myCheckboxList = new Dictionary<string,Checkbox>();

Затем, когда вы создаете каждый флажок

var cb = new Checkbox();
... set properties, etc ...
myCheckboxList.Add(qaItem.OrderNum, cb);