web-dev-qa-db-ja.com

Visual Studio 2017-Expressionインタラクションはどうなりましたか?

Expression相互作用のCallMethodActionを広範囲に使用して、MVVMに適した方法でXAMLからのイベントを処理します。

VS2017で新しいWPFプロジェクトを作成したところ、古いExpression名前空間がなくなっていることがわかりました。 MSDNのこのページ これは私が探しているアクションですが、そのアセンブリを参照して名前空間を追加した後、CallMethodActionが含まれていません。そのページはSilverlight用であり、これはWPFであるため、アクションが使用できなくなっていることを心配しています。

それが実際に削除/交換されているかどうかは誰にもわかりますか?ビューモデルでイベントハンドラーを呼び出す方法を教えてください。

(InvokeCommandActionについては知っていますが、元のイベント引数を中継し、プレビューイベントをキャンセルできるため、CallMethodActionを好みます。)

Edit:前進するために、InvokeCommandActionを試しましたが、同じ方法で動作しなくなり、新しい使用法に関するドキュメントが見つかりません。

私は MSDNのこのリファレンス 必要なクラスを含むように見えるMicrosoft.Xaml.Interactions名前空間を見つけましたが、そのAssemblyは存在しないようです。

ここで明らかな何かを見逃しているように感じます。イベントへの対応と同じくらい基本的なことに対して、彼らがどのように破壊的な変化をもたらすことができるのか、私にはわかりません。

33
amnesia

Visual Studio 2017インストーラーを使用して、「Blend for Visual Studio SDK for .NET」をインストールします。これは、「個別コンポーネント」ページの「SDK、ライブラリ、およびフレームワーク」見出しの下にあります。

80
nmarler

CallMethodActionは、Microsoft.Expressions.Interactions.dllで定義されています。このアセンブリは.NET Frameworkの一部ではありませんが、NuGetを使用してダウンロードできます。 https://www.nuget.org/packages/MicrosoftExpressionInteractions/

InvokeCommandActionクラスはSystem.Windows.Interactivity.dllアセンブリで定義されています: https://www.nuget.org/packages/System.Windows.Interactivity.WPF/

9
mm8