WPFにてTextBlockなどCommandプロパティを持たないコントロールにコマンドを割り当てるために必要な「System.Windows.Interactivity」。これをVisual Studio 2017で利用するには、インストーラの「個別コンポーネント」から「Blend for Visual Studio SDK for .NET」をインストールする必要があります。
しかし、より新しい開発環境であるVisual Studio 2019では「Blend for Visual Studio SDK for .NET」が用意されておらず、どうすりゃ良いんですかね? と。
ちょっと調べたところ、System.Windows.Interactivityに相当する部分がオープンソース化され、Nugetから導入できるようになったそうです。ここではSystem.Windows.Interactivityからの切替方法を記します。
一番の変更は、パッケージ名が「Microsoft.Xaml.Behaviors.Wpf」に変更されたことでしょう。その為、「System.Windows.Interactivity」と指定している箇所を全て変更しなくてはなりません。
それを踏まえたざっくりとした移行手順は次の通りです。
しかし、継続してメンテナンスされる代替手段が用意された今、それらの手段を採ることは望ましくないでしょう。
しかし、より新しい開発環境であるVisual Studio 2019では「Blend for Visual Studio SDK for .NET」が用意されておらず、どうすりゃ良いんですかね? と。
ちょっと調べたところ、System.Windows.Interactivityに相当する部分がオープンソース化され、Nugetから導入できるようになったそうです。ここではSystem.Windows.Interactivityからの切替方法を記します。
オープンソース化後は「Microsoft.Xaml.Behaviors.Wpf」
オープンソース化の件と移行手順は下記Microsoftのブログで公開されています。- .NET Blog
- Open Sourcing XAML Behaviors for WPF
それを踏まえたざっくりとした移行手順は次の通りです。
- Nugetで「Microsoft.Xaml.Behaviors.Wpf」をプロジェクトに導入する。
- プロジェクトの参照の一覧から「System.Windows.Interactivity」を削除する。
- XAMLファイルの「xmlns」のうち、「http://schemas.microsoft.com/expression/2010/interactivity」を「http://schemas.microsoft.com/xaml/behaviors」に置換する。
- csファイルの「using」のうち、「Microsoft.Xaml.Interactivity」を「Microsoft.Xaml.Behaviors」に置換する。
無理に古いものを使わない方が良いでしょう
「System.Windows.Interactivity」の導入方法については、2019年時点ではもうメンテナンスされていなさそうなBlend SDKを使う方法や、VS2017付属の「Blend for Visual Studio SDK for .NET」をVS2019から利用する方法などもあるようです。しかし、継続してメンテナンスされる代替手段が用意された今、それらの手段を採ることは望ましくないでしょう。
参考リンク
- Microsoft Visual Studio Developer Community
- How to install Blend SDK in Visual Studio 2019?
コメント