我们有一个从RadioButton继承的简单控件。我想以程序方式检查它。
如果是按钮我们会点击,我们通常会这样做。
pip
所以我想我可以使用RadioButton进行以下操作。
Button MyButton = ...
MyButtonClickArgs = new RoutedEventArgs(Button.ClickEvent, MyButton);
MyButton.RaiseEvent(MyButtonClickArgs);
然而,没有这样的运气。任何人都知道我做错了什么。
更新 进一步探索后会出现正在调用OnChecked事件处理程序。但是,IsChecked状态为false(因此它没有按照我的预期执行)。如果IsChecked为false,我希望在调用事件处理程序时它是真的。如果我实际点击按钮,至少就是这种行为。
答案 0 :(得分:1)
在你的例子中,你只是在发射一个事件。关闭事件不会自动将单选按钮的值设置为IsChecked:true。 Button Click的示例很好,但是对于单选按钮,您不需要显式触发事件。您可以直接设置属性IsChecked = true
radioButton.IsChecked = true;
这将检查单选按钮并触发调用Checked事件处理程序的事件。
当你在物理上检查按钮时,它会设置属性IsChecked,而不仅仅是触发事件。
从WPF添加单选按钮源代码的相关部分
/// <summary>
/// This override method is called from OnClick().
/// RadioButton implements its own toggle behavior
/// </summary>
protected internal override void OnToggle()
{
IsChecked = true;
}