アプリにカスタム「ページ」のリストがあります。各ページは、異なる UI ビューを表します。これらには、文字列のタイトルやアイコンなどのいくつかの単純なプロパティがありますが、メイン ツールバー、メイン コンテンツ領域、カスタム ステータスバー パネルなどに挿入するコントロールで構成される複雑なプロパティもいくつかあります。ページ タイプは次から派生します。FrameworkElement
各ページの XAML 内でデータ バインディングが適切に機能するようにします。これまでのところ、私が説明したことはすべてうまくいきます。
問題は、すべてのページのリストをすばやく表示しようとしたときに発生します。ItemsControl
アクティブなページのリストにバインドされた と、ページのプロパティにバインドされたラベルだけで構成される にDataTemplate
割り当てられています(前述のように、これは単なる文字列です)。ただし、実行すると、リストに何も表示されず、エラー出力に次のように表示されます。ItemTemplate
Title
System.Windows.Data エラー: 25: ItemTemplate と ItemTemplateSelector は項目に対して有効ではありません。; タイプ='ウェルカムページ'
基本型をFrameworkElement
テンプレート以外のものに変更すると機能しますが、各ページ内のデータ バインディングはひどく壊れます (ページの XAML 内で定義されElementName
た common の子である関係する両方のコントロールにもかかわらず、アイテムへのバインディングは失敗します)。FrameworkElement
DataTemplate を取得して FrameworkElement 派生型に適用する方法、またはデータ バインディングを取得して非 FrameworkElement をルートとする XAML ファイルで機能する方法を知っている人はいますか?