UI をインターフェイスにバインドしています (複数のプレゼンターによって実装され、UI アセンブリからはアクセスできません)。
R# を使用して xaml を強く型付けするため、デザイナーの d:DesignInstance が本当に気に入っています。
残念ながら、d:DesignInstance はインターフェイス タイプをサポートしていません。「インターフェイスのインスタンスを作成できません。」
私が最初に考えたのは、問題ありません。System.Type をパラメーターとして取り、ProvideValue メソッドがその偽のインスタンスを返すカスタム マークアップ拡張機能を作成しましょう (動的 IL 放出によって生成されたこのインターフェイスのダミー実装)。 .
これは非常にうまく機能し、バインディングは設計時に解決されます (マークアップ拡張機能がオブジェクト プロパティを lorem-ipsum で埋めるため、デザイン パネルで確認できます)。
しかし、最も優れた R# 機能は機能しません。Resharper はデータ コンテキスト タイプを認識せず、「タイプ 'オブジェクト' のデータ コンテキストでプロパティ '{0}' を解決できません」というメッセージを表示するだけです。
誰かがこれを修正する方法を知っていますか?
(R#にインターフェイスのデータコンテキストタイプを知らせることができる代替手段は素晴らしいでしょう)
ありがとう !
ps: DesignInstance に渡すために、生成されたランタイム タイプを返す別のマークアップ拡張機能も作成しようとしました: "{d:DesignInstance Type={utilsUi:InstanceType commons:User}}" => エラー「Object of type 'InstanceType' はタイプ 'System.Type' に変換できません" ... DesignInstance は内部マークアップ拡張機能をサポートしていないようです :(