0

私は初心者のプログラマーで、キャリアというよりも趣味としてやっています。そのため、私が働いている会社の請求書を生成するためのアプリケーションをまとめています。私は、サプライヤーからのデータ フィードを取り込み、顧客、製品、料金などを照合して請求書を作成する請求書作成作業を行っています。私は今、それをきれいにして、顧客と料金の詳細を編集できるようにしようとしています. その一部は、ルックアップ値 (VAT 率、マークアップ値、カスタム レートなど) を保持する多数のテーブルを取得したことを意味します。

私は WPF、C#、.Net 4 でアプリケーションを作成しています。また、レイヤーを分離するための MVVM パターンを維持しようとしています。

データ レイヤーとその他すべてとの対話を処理する EditLookupTableViewModel という汎用 VeiwModel を作成しました。私の問題はビューにあります。上記のクラスで許可するすべてのデータ型を処理できる単一のビューを作成したいと思います。私が立ち往生しているビットはこれです。

データベース テーブルの現在の値のリストとしてデータを表示し、それらの値を編集したり、新しい値を追加したりできるようにしたいと考えています。さまざまなデータ型はすべて、Entity Framework 4 経由でアクセスされる SQL データベースのテーブルに基づいています。すべてのテーブルの列の数または型が同じというわけではありません。

DataGrid コントロールを使用してデータをリストとして表示する場合、表示されているデータ型に基づいて列の型を変更するにはどうすればよいですか?

色々なサイトで探しましたが、なかなか合いません。

DataTemplate を使用してから DataTemplateSelector を使用できると思いましたが、DataGrid の DataTemplate を作成する方法がわかりません。

次に、ContentPresenter を使用すると考えましたが、テンプレートを選択する方法がわかりません。

理想的には、いくつかのテーブルが同じ構造を持っているため、コードからテンプレートを制御できるように、ある種の og TemplateSelector を使用したいと思います。同じテーブルのテンプレートを再利用するのは素晴らしいことです。

複数のビューを作成するよりもエレガントなソリューションが必要であると確信しているため、どんな助けも大歓迎です。

ありがとう

サイモン

4

2 に答える 2

0

WCF RIAを調べますが、データの操作方法にいくつかの変更が必要になります。基本的に、CRUD操作に必要な永続状態を処理するエンティティモデルと、セルを一度に編集できるかなりシルバーライトのデータグリッドがあります。ネット上にサンプルがありますが、サンプルを起動して実行するのに30分もかからない場合は、サンプルを見つけることができます。

于 2010-08-13T12:09:31.023 に答える
0

この答えはあなたを助けるかもしれません。MVVM スタイルの列ソートの追加と削除を可能にします。

回答は DataGridColumns のコレクションにバインドされることに注意してください。ColumnViewModel にバインドするように変更しました。この方法では、ViewModel コードでコントロールの名前空間を使用する必要がないため、ソリューションがより MVVM であると感じています。

その答えに基づいて同様のことを行うことができ、おそらく ColumnViewModel のさまざまなサブクラスを作成して、拡張機能内で GetType にバインドして使用し、質問に記載されているニーズをサポートできます。

于 2010-09-07T13:59:08.930 に答える