Fire RadioButton以编程方式检查路由事件

时间:2014-03-24 09:08:12

标签: c# wpf events wpf-controls

无论如何都要从代码中引发RadioButton已检查的路由事件,以便在父控件中处理它?<​​/ p>

情况就是这样:

var radio = new RadioButton();
radio.IsChecked = true;
radio.RaiseEvent(new RoutedEventArgs(RadioButton.CheckedEvent));

第三行不起作用。

谷歌搜索,我找到了另一种基于RadioButtonAutomationPeer的方式,但我找不到让它运行的方法。

有人有提示吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

var radio = new RadioButton();
radio.CheckedChanged +=new EventHandler(radio_CheckedChanged);
radio.IsChecked = true;

private void radio_CheckedChanged(object sender, EventArgs e)
{
        if (radio.Checked)
        {
            MessageBox.Show("true");
        }
        else
        {
            MessageBox.Show("false");
        }

}

答案 1 :(得分:-1)

您可以通过编程方式获取Radio检查事件,但不能直接在页面/表单上添加。 你必须创建面板或其他一些控制器,你可以像这样添加这个单选按钮

这是您的.aspx页面

<div>
        <asp:Panel runat="server" ID="pnl1">
    </asp:Panel>            
</div>

这是您的aspx.cs页面

protected void Page_Load(object sender, EventArgs e)
{
    var radio = new RadioButton { Checked = false, AutoPostBack = true, Text = "Click" };
    radio.CheckedChanged += radio_CheckedChanged;
    pnl1.Controls.Add(radio);
}

void radio_CheckedChanged(object sender, EventArgs e)
{
    throw new NotImplementedException();
}