これはThiado de Arrudaが投稿した質問のフォローアップです。つまり、generic.xaml ファイルに DataTemplate を含めたいと考えていましたが、テンプレートが適用されていませんでした。
与えられた答えは、彼のカスタム型をホストするコントロールの ControlTemplate.Resources に DataTemplate を配置することを提案しました。これは非常にうまく機能しますが、DataTemplate をホスト コントロール内だけでなく他の場所にも適用する必要があるとします。DataTemplate を他のすべてのホスト コントロールの ControlTemplates にコピーする必要がありますか?
編集(質問を言い換える):
MVVM 設計原則を使用して WPF アプリケーションを開発しています。 MainWindow.xamlには UI の構造が含まれており、すべてのスタイリングはThemes\generic.xamlにコーディングされています。(動作は別のビュー モデル クラスでコード化されていますが、それは無関係です。) UI の一部として、( ) のサブクラスを作成して、自分で作成した通常の .Net オブジェクトのコレクションListBox
( ) を表示します。 プロパティを再定義するgeneric.xamlのスタイルがあり、期待どおりに適用されます。generic.xamlにもforがありますが、これは適用されません。上記のリンクによると、のコレクションに配置する必要がありますMyListBoxSubClass
MyObject
MyListBoxSubClass
Template
DataTemplate
MyObject
DataTemplate
Resources
ControlTemplate
MyListBoxSubClass
これが適用されるためにDataTemplate
。これは素晴らしく機能します。
私の質問は、を複製せずにアプリケーションのどこDataTemplate
にでも適用する方法です。にキーを追加して必要な場所で参照しようとしましたが、何らかの理由で実行時に XAML 解析エラーが発生し、Resharper はキーを解決できないと言います。MyObject
DataTemplate
DataTemplate
DataTemplate