首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF RadioButton用RaiseEvent单击

WPF RadioButton用RaiseEvent单击
EN

Stack Overflow用户
提问于 2015-04-22 20:16:01
回答 1查看 2.9K关注 0票数 1

我们有一个从RadioButton继承的简单控件。我想通过程序检查一下。

如果它是一个按钮,我们会点击,我们通常会这样做。

代码语言:javascript
复制
Button MyButton = ...
MyButtonClickArgs = new RoutedEventArgs(Button.ClickEvent, MyButton);
MyButton.RaiseEvent(MyButtonClickArgs);

所以我想我可以用RadioButton来做下面的事情。

代码语言:javascript
复制
RadioButton MyButton = ...
MyButtonClickArgs = new RoutedEventArgs(RadioButton.CheckedEvent, MyButton);
MyButton.RaiseEvent(MyButtonClickArgs);

然而,没有这样的运气。谁知道我做错了什么。

更新:在进一步探索后确实会显示OnChecked事件处理程序正在被调用。但是,IsChecked状态是假的(因此它没有执行我期望的那样)。如果IsChecked为false,则在调用事件处理程序时,它将为true。如果我按一下按钮,至少这就是我的行为。

EN

回答 1

Stack Overflow用户

发布于 2015-04-22 20:36:09

在您的示例中,您只触发了一个事件。触发事件不会自动将Radio的值设置为IsChecked: true。您的Button单击示例很好,但是对于Radio,您不需要显式地触发事件。可以直接设置属性IsChecked = true

代码语言:javascript
复制
radioButton.IsChecked = true;

这将检查单选按钮,并触发事件调用选中的事件处理程序。

当您实际检查按钮时,它将设置属性IsChecked,而不只是触发事件。

从WPF中添加收音机按钮源代码的相关部分

代码语言:javascript
复制
/// <summary>
/// This override method is called from OnClick().
/// RadioButton implements its own toggle behavior 
/// </summary>
protected internal override void OnToggle() 
{ 
    IsChecked = true;
} 

Radion Button源代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29807912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档