我目前正在为我们的公司应用程序启用拖放支持。
我不断收到的错误对我来说似乎很奇怪。
这说的是
The property 'DragDropHelper.IsDragSource' does not exist in XML namespace 'clr-namespace:DragAndDrop;assembly=DragAndDrop'. Line 61 Position 83
该属性是我在示例中的 Internet 中找到的类中的附加属性,并对其进行了一些修改。这是属性声明:
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 标记中设置属性值 - 应用程序编译正常