1

현재 XLabs의 CustomRadioButton 구성 요소를 사용하고 있습니다. 샘플에서 BindableRadioGroup의 ItemsSource 속성에 문자열 배열을 지정하여 라디오 버튼에서 텍스트를 설정할 수 있음을 알게되었습니다.Xamarin Forms - XLabs CustomRadioButton : ItemsSource

예 : 객체와 같은 일을 할 수있는 경우 지금

BindableRadioGroup buttonGroup = new BindableRadioGroup(); 
ansPicker.ItemsSource = new[] 
     { 
      "Red", 
      "Blue", 
      "Green", 
      "Yellow", 
      "Orange" 
     }; 

, 내가 지금하고 싶습니다.

예 :

public class Person { 
    private string name; 
    private int age; 
} 

나는이 사람 객체의 목록이 있다면, 나는 그것이 BindableRadioGroup의 ItemsSource 속성에 직접 줄 수 있습니까? CustomRadioButton에 표시 할 속성을 정의하는 방법은 무엇입니까?

은 내가 ListView에이 방법을 찾았지만 내 경우, 나는 BindableRadioGroup의 ItemTemplate을 속성을 찾을 수 없습니다 :

var template = new DataTemplate (typeof (TextCell)); 
// We can set data bindings to our supplied objects. 
    template.SetBinding (TextCell.TextProperty, "FullName"); 
    template.SetBinding (TextCell.DetailProperty, "Address"); 

    itemsView.ItemTemplate = template; 
    itemsView.ItemsSource = new[] { 
    new Person { FullName = "James Smith", Address = "404 Nowhere Street" }, 
    new Person { FullName = "John Doe", Address = "404 Nowhere Ave" } 
    }; 

감사합니다.

답변

2

BindableRadioGroup은 실제로 StackLayout에서 파생되므로 DataTemplate을 사용할 수있을 것으로 생각하지 않습니다.

이것을 테스트하지 않고 두 가지를 시도해 볼 수 있습니다. code을 보면 TextItem.ToString()으로 OnItemsSourceChanged으로 설정됩니다. person 개체에 대해 ToString()으로 정의 할 수 있습니다.

또는 당신 같은 CheckedText 수동으로 추가하는 각 CustomRadioButton 당신의 BindableRadioGroup 객체에 각 속성을 바인딩, 자신을 각 CustomRadioButton의 생성을 처리 할 수 ​​있습니다.