2010-11-18 10 views
1

現在、XAMLから完全に駆動されているWPFアプリケーションがあります。すべてのフィールド、データグリッドはすべてObjectDataProvidersオブジェクトを使用してXAMLからバインドされます。私はDataAccessLayer(DAL)をプロジェクトにインポートしました。 ODPを使用してデータを取得する呼び出しは、データがすべて動作していることを表示するために使用されています。XAMLから直接データベースを更新します

XAMLから直接DALに存在するメソッドを使用して、挿入、更新、削除を行うことは可能でしょうか?私はUIを別個のエンティティにするために、ここで何らかのコードビハインドを避けようとしています。私は挿入、更新、削除を含む明確な例を見つけることができません。何かご意見は?

答えて

2

WPFもXamlも、実際には挿入、更新、および削除の概念を持っていません。データバインディングはすべてオブジェクト(またはときどきXML)に関係します。 UIの変更(例えば、TextBoxに値を入力するユーザ)がバインドされたオブジェクトにプッシュされると、データバインディングのジョブが完了する。それは、あなたがデータに関して何をするかはあなた次第です。

これは、「コードビハインドなし」の目標には何の障害もありません。通常の方法は、ビュー(Xaml)とデータオブジェクトの間にレイヤーを追加し、基底のドメインモデルではなくそのレイヤーにUIをバインドすることです。 (このレイヤーはViewModelと呼ばれることもありますが、Presenterなどの別の名前が表示されることもあります)。

コードビハインドを必要とせずにアクションを有効にする方法コマンドの使用によるものです。中間層は、データ指向のプロパティを公開するだけではありません。コマンドを保持するプロパティが公開され、これらのコマンドをボタン、ハイパーリンク、またはメニュー項目にバインドできます。これはコードビハインドを必要とせず、Xamlのすべてのバインディング式だけです。しかし、あなたがボタンをクリックすると、ビューモデル内の関連するハンドラコードが実行されます。 (ICommandは、実装するための非常にシンプルなインターフェイスである - 。クリックされたときにボタンがちょうどExecuteメソッドを呼び出しますそして、あなたは通常、独自の実装を提供します - 内蔵のRoutedCommandRoutedUICommandこのシナリオには不適切です。)その後、

そして、あなたは挿入/更新/削除/あなたが合っていると思ったものを挿入することができます。

関連する問題