2

現在、会社のアプリでドラッグ アンド ドロップのサポートを有効にする作業を行っています。
私が取得し続けるエラーは、私には奇妙に思えます。
これが言っていることは、

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マークアップでプロパティ値を設定したため、さらに奇妙です-アプリは正常にコンパイルされました

4

4 に答える 4

2

問題が解決しました。私のエラーは、添付プロパティを追加した後にライブラリを再コンパイルしなかったことです。私がそうした後、すべてが期待どおりに機能します。みんなごめんなさい:(

于 2011-01-03T12:38:00.930 に答える
0

私はあなたとまったく同じ問題を抱えていました。[AttachedPropertyBrowsableForChildren]setterメソッドの上に属性を配置することで機能するようになりました。理由を聞かないでください、それはうまくいきました...

于 2010-12-30T10:09:46.320 に答える