0

コマンドを Silverlight コントロール イベントに関連付けるために SLExtensions コマンド パターン ( http://www.codeplex.com/SLExtensions ) を使用している人はいますか? 私が見たところ、コントロールごとに 1 つのイベントに対してのみコマンドをアタッチできます。たとえば、ボタンのクリック イベント、テキスト ボックスのキーダウン イベントなどのみを追加できます。

コントロールごとに複数のイベントを追加したい場合はどうすればよいですか? たとえば、ボタンの Click イベントと Drop イベントの両方にコマンドを追加したい場合はどうでしょう。そのままでは、SLExtensions コードでこれを処理する方法はないようです。

ところで、これは Model-View-ViewModel (MVVM) コンテキストにあります。

4

3 に答える 3

0

XAML で接続するイベントは少し制限されていますが、SLExtensions で自然にサポートされていない場合、コード ビハインド/ビュー モデルでそれを行うことを止めるものは何もありません。

if (action == dropped)
{
  Commands.Dropped.Execute();
else
{
  Commands.Clicked.Execute();
}

または何でも...私があなたを誤解している場合、あなたがやりたいことのサンプルコードが役に立ちます。

于 2009-02-21T16:39:19.490 に答える
0

dwynne - その通りです。指定されたコードを使用してドロップ イベントを処理できました。ただし、コード ビハインドでイベント ハンドラーを実装し、そこから ViewModel を呼び出す必要があります。コード ビハインドへのコーディング イベント ハンドラーを排除しようとすることで、MVVM に準拠しようとしています。代わりに、付属のコマンドを使用して XAML を ViewModel に直接接続したいと考えています。

SLExtensions ライブラリではこれを行うことができますが、(私が経験したことから) コントロールごとに 1 つのイベントしか許可されません (ボタンのクリック、テキストボックスのキーダウンなど)。重要なアプリケーションの場合、これは十分ではなく、MVVM の実装は機能しません。

コメント エリアを使用できなくて申し訳ありませんが、300 文字は少し制限があります。StackOverflow の人 - この制限を引き上げる必要があります。

于 2009-02-22T18:15:40.857 に答える