4

私は会社の連絡先管理プログラムを設計する任務を負っています。VS 2012 を使用していますが、WPF を使用したことがないため、このアプリケーションを開発するために使用すると考えていました。

最初にデータベースであるデータベースにエンティティ フレームワークを使用する場合、バインディングを開始するのに大きな問題があります。

私は、このリンク内の指示に従って手紙を書きました。 http://msdn.microsoft.com/en-us/data/jj574514.aspx

オブジェクトはデータ ソース ウィンドウに問題なく表示されます。しかし、ウィンドウにドラッグ アンド ドロップしても何も起こりません。私が何を間違っているのかわからず、この問題を抱えている人を見つけることができません。

誰か助けてくれませんか?私はいたるところを見てきました。どんな助けでも大歓迎です

4

2 に答える 2

4

モデルからデータ グリッドを自動的に作成する

データ ソースを使用してテンプレートを WPF コントロールにドラッグ アンド ドロップすることは、起動して実行するための優れた迅速な方法です。

これを行うことから始めます: プロジェクトで、Models という名前のフォルダーを作成し、最初に Entity Framework DB を使用するか、表示するモデルを手動でコーディングします。

または、以下のオブジェクト バインディングに関する説明を参照してください...

その同じフォルダーに、次のような IEnumerable のプロパティであるダミー クラスを作成します。

public IEnumerable<MyClassModel> MyCollection { get; set; }

そこから Visual Studio のメイン メニューの [表示]、[その他のウィンドウ]、[データ ソース] の順に移動し、そのリンクをクリックします。

データ ソース ウィザード

[オブジェクト] をクリックし、上で作成した MyCollection プロパティを見つけます。

WPF でユーザー コントロールまたはウィンドウを開きますが、データソース ツールボックスは開いたままにします。

デフォルトは DataGrid ですが、データソースを右クリックして詳細、データグリッドに変更するか、それが表すクラスの個々のプロパティを選択できます。

そのデータソースを XAML のグリッド領域にドラッグするだけです。表示される新しいものを右クリックし、リセットをクリックして、コンテンツをウィンドウ全体のサイズに設定します。

これを行った後、そのウィンドウ、ユーザーコントロールなどのウィンドウロードイベントで、次のようにビューの背後にあるコードにコードが挿入されます。

        // Do not load your data at design time.
         if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
         {
            //Load your data here and assign the result to the CollectionViewSource.
            System.Windows.Data.CollectionViewSource myCollectionViewSource = (System.Windows.Data.CollectionViewSource)this.Resources["Resource Key for CollectionViewSource"];
            myCollectionViewSource.Source = your data
        // }

XAML に戻り、プロパティを XAML にドラッグしたときに挿入された CollectionViewSource KEY プロパティを探します。次のようになります。

コレクション ビュー ソース キー

コード ビハインドでキー名を使用し、選択したビュー モデルまたはビューのコード ビハインドに存在できる MyClassModel 型の列挙型であるデータ ソースに CVS を「バインド」します。

CollectionViewSource をグリッドのデータ コンテキストとしてのみ使用する場合は、基になるコレクションに INPC を実装する必要はありません。CVS は、ソースが更新されるたびに自動的にビューを更新します! これに慣れると、2 分でデータの実用的な View プロトタイプを作成できます! 時間がかかりすぎる XAML のハンド コーディングは忘れてください。

オブジェクトバインディング

次のようなものを返す静的メソッドで静的クラスを作成します。

ここに画像の説明を入力

データソース ウィザードを使用する場合は、[オブジェクト] を選択します。

[OK] をクリックすると、次のように表示されます。

ここに画像の説明を入力

すべてのプロパティをデータ ソース定義にマップしました。

于 2015-03-03T19:22:13.373 に答える