如何在WPF中为单选按钮绑定Checked事件?

发布于 2024-08-27 13:27:52 字数 857 浏览 7 评论 0 原文

我在 WPF 中使用以下标记:

    <StackPanel.Triggers>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="xmlRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowXmlPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="adiRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowAdiPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </StackPanel.Triggers>

虽然运行代码时效果很好,但在 VS 2008 的设计器窗口中出现以下错误:

值“RadioButton.Checked”不能是 分配给属性“RoatedEvent”。 事件名称无效。

知道为什么吗?我该如何解决这个问题?

I am using the following markup in WPF:

    <StackPanel.Triggers>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="xmlRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowXmlPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="RadioButton.Checked" SourceName="adiRadioButton">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ShowAdiPanel}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </StackPanel.Triggers>

Though this works fine when I run the code, I get the following error in the designer window of VS 2008:

Value 'RadioButton.Checked' cannot be
assigned to property 'RoutedEvent'.
Invalid event name.

Any idea why, and how can I fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戴着白色围巾的女孩 2024-09-03 13:27:53

RadioButton 是一个ToggleButton。设计器确实支持附加的 ToggleButton 属性,但不支持 RadioButton 属性(当然 RadioButton 标记除外)。

您需要使用定义属性/事件的类名,以便设计器接受它(认为在运行时没有区别,因为 RadioButton 是一个 ToggleButton 正如我所说,但设计者不是真正的编译器)。

因此,在您的情况下,请使用 ;-)

RadioButton is a ToggleButton. The designer does support the attached ToggleButton properties, but not the RadioButton ones (except in a RadioButton tag of course).

You need to use the class name that defines the property/event for the designer to accept it (thought there is no difference at runtime, since RadioButton IS a ToggleButton as I said, but the designer is not a real compiler).

So in your case, use <EventTrigger RoutedEvent="ToggleButton.Checked ..." ;-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文