我想在我的viewModel中使用syncfusion单选按钮获得选中的单选按钮的值,这样我就可以根据选中的值做一些逻辑。我似乎无法得到选定的值。请帮助!
Xaml
<syncfusion:SfRadioGroup x:Name="radioGroup"
BindableLayout.ItemsSource="{Binding Items}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<syncfusion:SfRadioButton
Text="{Binding PaymentMethod}" />
</DataTemplate>
</BindableLayout.ItemTemplate>
</syncfusion:SfRadioGroup>
视图模型public List<PaymentMthd> Items { get; set; }
Items = new List<PaymentMthd>()
{
new PaymentMthd(){PaymentMethod = "Cash" , id = 1},
new PaymentMthd(){PaymentMethod = "Visa Card" , id = 2},
};
private int _IsChecked;
public int IsChecked
{
get { return _IsChecked; }
set { SetProperty(ref _IsChecked, value); }
您可以添加StateChanged事件来侦听状态。
<syncfusion:SfRadioButton
Text="{Binding PaymentMethod}" StateChanged="RadioButton_StateChanged" />
然后在代码后面:
private void RadioButton_StateChanged(object sender, StateChangedEventArgs e)
{
if (e.IsChecked.HasValue && e.IsChecked.Value)
{
//if checked,do something
}
else if (e.IsChecked.HasValue && !e.IsChecked.Value)
{
//if not checked,do something
}
}
您还可以使用CheckedChanged
事件来获取在RadioGroup中选中的RadioButton,该事件在更改RadioGroup中的选择时已被调用。
<syncfusion:SfRadioGroup x:Name="radioGroup" BindableLayout.ItemsSource="{Binding Items}"
CheckedChanged="CheckedChanged_event">
<BindableLayout.ItemTemplate>
<DataTemplate>
<syncfusion:SfRadioButton Text="{Binding PaymentMethod}" />
</DataTemplate>
</BindableLayout.ItemTemplate>
</syncfusion:SfRadioGroup>
:
private void CheckedChanged_event(object sender,Syncfusion.XForms.Buttons.CheckedChangedEventArgs e)
{
// To get the selected RadioButton - e.CurrentItem
// To get the previously selected RadioButton - e.PreviousItem
}