【问题标题】:Create a list of RadioElement via the values of a list in Xamarin.IOS通过 Xamarin.IOS 中列表的值创建 RadioElement 列表
【发布时间】:2016-11-01 11:37:54
【问题描述】:

我想通过 ArrayList 的值创建一个 RadioElement 列表。 想象一下我有一个清单:

System.Collections.Generic.List<MyClass> mylist

现在我不想遍历所有元素并为每个人创建一个RadioElement。是否可以通过MyClass 的属性自动创建RadioElements,通过传递List&lt;MyClass&gt;。 当用户选择RadioElements 之一时,如何获得Tapped 事件?

【问题讨论】:

    标签: ios xamarin monotouch.dialog radioelement


    【解决方案1】:

    Linq 救援:https://msdn.microsoft.com/en-us/library/bb397900.aspx

    例如,我创建了一个 MyClass,其中包含一个布尔属性 CreateRadioElement 和一个 ElementText 字符串属性:

    public class MyClass
    {
        public bool CreateRadioElement { get; set; }
    
        public string ElementText { get; set; } 
    }
    

    然后我创建了一个 MyClass 对象列表:

    List<MyClass> elements = new List<MyClass>();
    elements.Add(new MyClass { CreateRadioElement = true, ElementText = "1" });
    elements.Add(new MyClass { CreateRadioElement = false, ElementText = "2" });
    elements.Add(new MyClass { CreateRadioElement = true, ElementText = "3" });
    elements.Add(new MyClass { CreateRadioElement = false, ElementText = "4" });
    elements.Add(new MyClass { CreateRadioElement = true, ElementText = "5" });
    

    所以现在我们只希望将 CreateRadioElement 设置为 true 的 MyClass 对象:

    IEnumerable<MyClass> radioelementsQuery = from element in elements
                                              where element.CreateRadioElement == true
                                              select element;
    

    现在您使用 foreach 循环执行查询:

    foreach (MyClass mc in radioelementsQuery)
    {
          Console.WriteLine("Element: {0}", mc.ElementText);
    }
    

    而且您只会在控制台输出中看到 1、3 和 5。当然,您可以将每个都分配给 RadioElement,而不是写入控制台。

    【讨论】:

    • 我知道如何创建一个包含值的列表,过滤它等。我的问题是关于你答案的最后一部分。您说我必须遍历所有值并为每个值创建一个 radioElement?有没有办法将 list 绑定为源,以便 Xamarin 自动创建 radioElements?
    • 据我所知 Monotouch.Dialog 没有绑定机制。请注意,Xamarin 不再积极支持 Monotouch.Dialog,尽管它是开源的。您可能希望改用具有内置绑定机制的 Xamarin.Forms。
    猜你喜欢
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2022-08-13
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多