ObservableコレクションをUserControlの添付プロパティにバインドできません

dotixx

カスタムタイプ(BoundItem)のObservableCollectionをビューにバインドしたいと思います。

私はそれをこのように使用しています:

<v:MyUserControlBase x:Class="My.Views.MyView"
         (...)
         h:FrameworkElementDropBehavior.MyItems="{Binding Attachments}">

添付ファイルは、ViewModelで次のように定義されます。

public ObservableCollection<BoundItem> Attachments 
{ 
   get { return _Attachments; } 
   set { _Attachments = value; } 
}

ビューの背後にあるコードで実行すると、次のコードが表示されるため、私のビューは実際のDependencyObjectです。

MessageBox.Show((this as DependencyObject).ToString());

「True」と表示されます。

依存関係プロパティを次のように定義しました。

    public static readonly DependencyProperty MyItemsProperty = DependencyProperty.RegisterAttached("MyItems", typeof(ObservableCollection<BoundItem>), typeof(MyView), new FrameworkPropertyMetadata(null));
    public static string GetMyItems(DependencyObject element)
    {
        if (element == null) throw new ArgumentNullException("MyItems");
        return (ObservableCollection<BoundItem>)element.GetValue(MyItemsProperty);
    }
    public static void SetMyItems(DependencyObject element, ObservableCollection<BoundItem> value)
    {
        if (element == null) throw new ArgumentNullException("MyItems");
        element.SetValue(MyItemsProperty, value);
    }

発生するエラーは次のとおりです。

タイプ「MyView」の「SetMyItems」プロパティに「Binding」を設定することはできません。「バインディング」は、DependencyObjectのDependencyPropertyにのみ設定できます。

あなたの助けをありがとう:)。x

ニティーン

問題はあなたの財産登録にあります。代わりに、所有者のタイプでMyView、それはする必要がありますFrameworkElementDropBehaviorあなたがあなたの財産を定義しているクラスをE、I。

public static readonly DependencyProperty MyItemsProperty =
     DependencyProperty.RegisterAttached("MyItems", 
                                        typeof(ObservableCollection<BoundItem>), 
                                        typeof(FrameworkElementDropBehavior), 
                                        new FrameworkPropertyMetadata(null));

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

UserControlでコレクションの依存関係プロパティをバインドする方法

分類Dev

フレックスでプロパティを特定の値にバインドできません

分類Dev

XAMLのUserControlのプロパティにアクションをバインドします

分類Dev

Angular6プロダクションビルド「「div」の既知のプロパティではないため、「disabled」にバインドできません」

分類Dev

サイドバーのナビゲーションでプロパティを表示できません

分類Dev

Neo4j: null 値を含むコレクションはプロパティに保存できません

分類Dev

VB.Net-TextBoxをコレクションのプロパティにバインドします

分類Dev

JavaFXはchoiceboxをコレクション内のプロパティにバインドします

分類Dev

JPQL:フィールドパスをコレクションタイプに解決できません

分類Dev

TreeViewItemのIsSelectedプロパティをViewModelにバインドできません

分類Dev

コレクションのフィールドの比較-org.hibernate.QueryException:プロパティを解決できませんでした:

分類Dev

プロパティLaravel5.8によるコレクションにアクセスできません

分類Dev

Self.Indexタイプのコレクションに添え字を付けることはできません

分類Dev

SilverlightでコレクションをComboBoxにバインドできません

分類Dev

プロパティ[id]はこのコレクションインスタンスに存在しません

分類Dev

プロパティ[customInput]はこのコレクションインスタンスに存在しません

分類Dev

プロパティ[bId]はこのコレクションインスタンスに存在しません

分類Dev

プロパティ[TitleEn]はこのコレクションインスタンスに存在しません

分類Dev

プロパティ[students]はこのコレクションインスタンスに存在しません

分類Dev

"プロパティ[body]はこのコレクションインスタンスに存在しません

分類Dev

Laravel-プロパティはこのコレクションインスタンスに存在しません

分類Dev

プロパティ[users]はこのコレクションインスタンスに存在しません

分類Dev

例外プロパティ[]はこのコレクションインスタンスに存在しません

分類Dev

プロパティ[kodeSparepart]はこのコレクションインスタンスに存在しません

分類Dev

Laravel:編集ビューでフィールドにデータを入力しようとしているときに、プロパティ[名前]がこのコレクションインスタンスに存在しません

分類Dev

プロパティにバインドできません

分類Dev

プロジェクトを最新バージョンのCordova4.0.0にアップグレードするときに、コンソールでTypeError「#<ナビゲーター>のプロパティ接続を設定できません」

分類Dev

オブジェクトのプロパティをカスタムコントロールにバインドできません

分類Dev

エクスプレスセッション未定義のプロパティ 'id'を設定できません

Related 関連記事

  1. 1

    UserControlでコレクションの依存関係プロパティをバインドする方法

  2. 2

    フレックスでプロパティを特定の値にバインドできません

  3. 3

    XAMLのUserControlのプロパティにアクションをバインドします

  4. 4

    Angular6プロダクションビルド「「div」の既知のプロパティではないため、「disabled」にバインドできません」

  5. 5

    サイドバーのナビゲーションでプロパティを表示できません

  6. 6

    Neo4j: null 値を含むコレクションはプロパティに保存できません

  7. 7

    VB.Net-TextBoxをコレクションのプロパティにバインドします

  8. 8

    JavaFXはchoiceboxをコレクション内のプロパティにバインドします

  9. 9

    JPQL:フィールドパスをコレクションタイプに解決できません

  10. 10

    TreeViewItemのIsSelectedプロパティをViewModelにバインドできません

  11. 11

    コレクションのフィールドの比較-org.hibernate.QueryException:プロパティを解決できませんでした:

  12. 12

    プロパティLaravel5.8によるコレクションにアクセスできません

  13. 13

    Self.Indexタイプのコレクションに添え字を付けることはできません

  14. 14

    SilverlightでコレクションをComboBoxにバインドできません

  15. 15

    プロパティ[id]はこのコレクションインスタンスに存在しません

  16. 16

    プロパティ[customInput]はこのコレクションインスタンスに存在しません

  17. 17

    プロパティ[bId]はこのコレクションインスタンスに存在しません

  18. 18

    プロパティ[TitleEn]はこのコレクションインスタンスに存在しません

  19. 19

    プロパティ[students]はこのコレクションインスタンスに存在しません

  20. 20

    "プロパティ[body]はこのコレクションインスタンスに存在しません

  21. 21

    Laravel-プロパティはこのコレクションインスタンスに存在しません

  22. 22

    プロパティ[users]はこのコレクションインスタンスに存在しません

  23. 23

    例外プロパティ[]はこのコレクションインスタンスに存在しません

  24. 24

    プロパティ[kodeSparepart]はこのコレクションインスタンスに存在しません

  25. 25

    Laravel:編集ビューでフィールドにデータを入力しようとしているときに、プロパティ[名前]がこのコレクションインスタンスに存在しません

  26. 26

    プロパティにバインドできません

  27. 27

    プロジェクトを最新バージョンのCordova4.0.0にアップグレードするときに、コンソールでTypeError「#<ナビゲーター>のプロパティ接続を設定できません」

  28. 28

    オブジェクトのプロパティをカスタムコントロールにバインドできません

  29. 29

    エクスプレスセッション未定義のプロパティ 'id'を設定できません

ホットタグ

アーカイブ