2016-11-01 39 views
1

我想通過ArrayList的值創建一個RadioElement的列表。 想象我有一個列表:通過Xamarin中的列表值創建RadioElement的列表.IOS

System.Collections.Generic.List<MyClass> mylist 

現在我不想通過所有元素來迭代,併爲每個人創造一個RadioElement。是否可以通過MyClass的屬性自動創建RadioElements,方法是傳遞List<MyClass>。 當用戶選擇RadioElements之一時,如何獲得Tapped事件?

回答

0

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

舉個例子,我創建了一個布爾屬性CreateRadioElement一個MyClass的和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的MyClass對象設置爲true:

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。

+0

我知道如何用值創建一個列表,過濾等等。我的問題是關於你答案的最後部分。你說我必須遍歷所有的值併爲每個值創建一個radioElement?沒有辦法將名單限制爲源代碼,以便Xamarin自動創建radioElements? –

+0

據我所知Monotouch.Dialog沒有綁定機制。請注意,Monotouch.Dialog不再受Xamarin支持,儘管它是開源的。您可能想要使用Xamarin.Forms而不是內置綁定機制。 – jgoldberger