将 x:Name 属性 分配给源代码 [Xamarin/C#] 中的复选框

Assign x:Name property to a checkbox in source code [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”?因为复选框的数量不确定。

x:Name 实际上不是 属性,它只是一个用于创建 C# 变量名的 XAML 帮助程序。如果您在运行时创建元素,则需要维护一个数组或列表以跟踪它们

你可以这样做

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

然后在创建每个复选框时

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