RoutedEvent处理程序没问题,但设计视图不会加载

时间:2013-10-28 02:58:40

标签: c# wpf visual-studio-2010 xaml

我从MyMenu.xaml.cs(用户控件)创建了一个路由事件ItemSelectedEvent,它是另一个用户控件UserControl1的一部分。在UserControl1.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"

我正在尝试进行类似于this post

的事件冒泡

1 个答案:

答案 0 :(得分:0)

专门打开WPF跟踪设置Routed Events并以调试模式运行并检查输出窗口。那个可以给你一个提示,告诉你为什么VS无法正确理解路由。

工具 - &GT;选项 - &gt;调试 - &gt;输出窗口 - &gt; WPF跟踪设置 - &gt;路由事件。