Creating RadioButtons Dynamically

Don't use RadioButtons or Checkbox in a ListView! It's not performant and it's not easy to find selected item.

To generate radio buttons dynamically, you can use SelectionView. SelectionView has 3 selection type. They're Button (as default), RadioButton, CheckBox. If you set SelectionType to RadioButton and Bind ItemsSource, you've created Radio Buttons dynamicly.

Let's start.

*In that sample Basic MVVM logic will be used.*

That's our model:
    public class SampleClass
        public int Id { get; set; }
        public string Name { get; set; }
        //Override string and return what you want to be displayed
        public override string ToString() => Name;

...And this is ViewModel. Just Create a list of your object. And override ToString inside your class, to display what you want. Declare one more property for SelectedItem.

      public class MainViewModel : INotifyPropertyChanged
        public MainViewModel()
            MyList = new ObservableCollection<SampleClass>();
        public IList<SampleClass> MyList { get; set; }
        private SampleClass _selectedItem;
        public SampleClass SelectedItem
            get => _selectedItem;
            set { _selectedItem = value; OnPropertyChanged(); }

        void FillData()
            for (int i = 0; i < 6; i++)
                MyList.Add(new SampleClass { Id = i, Name = "Option " + i });

        #region INotifyPropertyChanged Implementation
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged([CallerMemberName]string propName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); 

And there's nothing for XAML. It's one line configuration is enough. Just set SelectionType and ColumnNumber(default is 2), and bind ItemsSource and SelectedItem, It'll generate radiobuttons at runtime.

  <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns=""

        <StackLayout Padding="20">

            <input:SelectionView ColumnNumber="1" SelectionType="RadioButton" ItemsSource="{Binding MyList}" SelectedItem="{Binding SelectedItem}"  />            


You'll get this view:

And you can see it'll send SelectedItem to your ViewModel:

Best Regards...
In this document