आप एक enum
कि नाम (मोटे तौर पर) के रूप में RadioButton
वस्तुओं के मूल्यों को बना सकते हैं और फिर इस enum
के प्रकार के एक EnumToBoolConverter
उपयोग करने का एक संपत्ति के लिए IsChecked
संपत्ति बाँध।
public enum Options
{
All, Current, Range
}
फिर अपने दृश्य मॉडल या पीछे कोड में
: उचित ConverterParameter
की स्थापना UI में फिर अंत में
[ValueConversion(typeof(Enum), typeof(bool))]
public class EnumToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || parameter == null) return false;
string enumValue = value.ToString();
string targetValue = parameter.ToString();
bool outputValue = enumValue.Equals(targetValue, StringComparison.InvariantCultureIgnoreCase);
return outputValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || parameter == null) return null;
bool useValue = (bool)value;
string targetValue = parameter.ToString();
if (useValue) return Enum.Parse(targetType, targetValue);
return null;
}
}
, बाइंडिंग जोड़ने के लिए,:
private Options options = Options.All; // set your default value here
public Options Options
{
get { return options; }
set { options = value; NotifyPropertyChanged("Options"); }
}
Converter
जोड़े
<RadioButton Content="All Pages" IsChecked="{Binding Options, Converter={
StaticResource EnumToBoolConverter}, ConverterParameter=All}" />
<RadioButton Content="Current Page" IsChecked="{Binding Options, Converter={
StaticResource EnumToBoolConverter}, ConverterParameter=Current}" />
<RadioButton Content="Page Range" IsChecked="{Binding Options, Converter={
StaticResource EnumToBoolConverter}, ConverterParameter=Range}" />
अब आप बता सकते हैं कि Options
वैरिएबल को आपके व्यू मॉडल या कोड में देखकर कौन सा सेट किया गया है। आप Options
संपत्ति सेट करके चेक किए गए RadioButton
को भी सेट करने में सक्षम होंगे।
हाय @ नोट: यह बहुत ही सरल, त्वरित, सुरुचिपूर्ण और वास्तव में लागू समाधान के लायक है। आपके उत्तर के लिए धन्यवाद। :) – Bhramar
@ भामर खुश है कि यह आपके लिए काम करता है :) – Nitin
बडी, समाधान ठीक काम करता है, लेकिन मैं अपने किसी भी रेडियोबटन पर डिफ़ॉल्ट रूप से कैसे चेक करूंगा। ठीक है हम इसे निर्माता में सेट कर सकते हैं, लेकिन यह एमवीवीएम नियमों को कम करेगा। कोई भी विचार मददगार होगा । – Bhramar