Parse event of the property binding is not fired when you change the ToggleState value of RadToggleButton:
Workaround:
private void Form1_Shown(object sender, EventArgs e)
{
Binding b = new Binding("ToggleState", vm, "IsToggleSet", true, DataSourceUpdateMode.OnPropertyChanged);
b.Format += new ConvertEventHandler(b_Format);
b.Parse += new ConvertEventHandler(b_Parse);
radToggleButton1.DataBindings.Add(b);
}
void b_Parse(object sender, ConvertEventArgs e)
{
if (e.DesiredType != typeof(bool) || !(e.Value is ToggleState))
return;
ToggleState state = (ToggleState)e.Value;
e.Value = (state == ToggleState.On) ? true : false;
}
void b_Format(object sender, ConvertEventArgs e)
{
if (e.DesiredType != typeof(ToggleState) || !(e.Value is bool))
return;
bool isToggleOn = (bool)e.Value;
e.Value = isToggleOn ? ToggleState.On : ToggleState.Off;
}