将 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);
您好,我有一组从源代码生成的复选框,而不是 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);