路由事件处理程序正常,但设计视图无法加载

本文关键字:视图 加载 程序 事件处理 路由 | 更新日期: 2023-09-27 18:37:07

我从 MyMenu.xaml.cs(一个用户控件)创建了一个路由事件 ItemSelectedEvent,它是另一个用户控件 UserControl1 的一部分。在用户控件1.xaml中,我有

<UserControl
...
xmlns:local="clr-namespace:"MyNameSpace"
local:MyMenu.ItemIsSelected= "ItemIsSelected" >

我的程序实际上运行良好,我在 ItemIsSelected 中获取事件。问题是XAML一直在说:

The attachable property 'ItemIsSelected' was not found in type 'MyMenu'

在我的MyMenu.xaml.cs中,我有:

public static readonly RoutedEvent ItemSelectedEvent =
        EventManager.RegisterRoutedEvent(
        "ItemIsSelected", RoutingStrategy.Bubble, 
        typeof(RoutedEventHandler), 
        typeof(UserControl));
public event RoutedEventHandler ItemIsSelected
    {
        add { AddHandler(ItemSelectedEvent , value); }
        remove { RemoveHandler(ItemSelectedEvent , value); }
    }

错误在设计视图中显示"加载问题"。一旦我删除了"local:MyMenu...."行,一切正常。

请注意,我在上一篇文章中犯了一个错误。我将其更改为(这是事件处理方法名称,而不是事件):

local:MyMenu.ItemIsSelected= "ItemIsSelected"

我正在尝试做类似于这篇文章的事件冒泡

路由事件处理程序正常,但设计视图无法加载

专门Routed Events打开 WPF 跟踪设置并在调试模式下运行,并检查输出窗口。这可能会提示您为什么 VS 无法正确理解路由。

工具->选项 ->调试"->"输出"窗口"-> WPF 跟踪设置 ->路由事件。