2010-10-26 72 views
1

我目前正致力于为我们公司的应用程序启用拖放支持。
我不断收到的错误对我来说似乎很奇怪。
它说的是,该属性在XML命名空间中不存在

The property 'DragDropHelper.IsDragSource' does not exist in XML namespace 'clr-namespace:DragAndDrop;assembly=DragAndDrop'. Line 61 Position 83 

该物业是在我的样本在互联网找到,修改有点类的附加属性。这里是财产声明:

namespace DragAndDrop { 
public class DragDropHelper 
{ 
    public static readonly DependencyProperty IsDragSourceProperty =  
     DependencyProperty.RegisterAttached("IsDragSource", typeof (bool), typeof (DragDropHelper), 
              new UIPropertyMetadata(false, IsDragSourceChanged)); 

    public static bool GetIsDragSource(DependencyObject obj) 
    { 
     return (bool) obj.GetValue(IsDragSourceProperty); 
    } 

    public static void SetIsDragSource(DependencyObject obj, bool value) 
    { 
     obj.SetValue(IsDragSourceProperty, value); 
    } 

在我看来,附加属性是完全有效的,不是吗? 这个DragDropHelper包含在一个类库中,我从主客户端应用程序中引用它。 当我尝试设置属性的值在客户端应用程序:

<ListView x:Uid="list" x:Name="CurrentFolderItemsControl" drag:DragDropHelper.IsDragSource="true" /> 

VS2010说,物业不XML命名空间存在。 XAML文档是资源字典 ,它合并到主客户端应用程序资源中,因为它包含我们控制的样式。
,因为我创建以来附加属性,然后设置属性值在XAML标记主应用程序中的类这更奇怪 - 编译OK

+0

DragDropHelper类位于什么组合? – 2010-10-26 14:59:54

+0

DragDropHelper类位于单独的类库中,并且我从主客户端应用程序引用库 – chester89 2010-10-26 15:02:26

+0

您是如何在XAML中声明名称空间的? (xmlns:drag =“...”) – 2010-10-26 15:57:05

回答

2

问题解决了。我的错误是我添加附加属性后没有重新编译库。在我这样做后,一切都按预期工作。对不起大家:(

0

我有完全一样的问题,因为你做的应用程序。我通过将[AttachedPropertyBrowsableForChildren]属性放在我的setter方法上面来实现它。不要问我为什么,它只是工作...

+1

没有为我工作。 – yonexbat 2011-09-03 10:12:30

1

很抱歉的死灵...只是想我会分享我在类似的情况发生了什么事我复制从外部项目,该项目内部参考的行为的命名空间我的观点:

xmlns:b="clr-namespace:MyCompany.Common.Behaviours" 
b:WindowBehaviours.Close="{Binding ClosingView}" 
需要

两件事情这个工作首先,XMLNS需要明确引用的程序集的行为类,像这样:

xmlns:b="clr-namespace:MyCompany.Common.Behaviours;assembly=Common" 

其次,我暂时删除第二行和重建我的解决方案杉st。当你克隆WPF项目时,VS2012有时会得到它的内裤,并且在没有违规行的情况下重建会很好地修复事件(它会在我将行重新添加回来后识别行为)。

相关问题