4

アプリにカスタム「ページ」のリストがあります。各ページは、異なる UI ビューを表します。これらには、文字列のタイトルやアイコンなどのいくつかの単純なプロパティがありますが、メイン ツールバー、メイン コンテンツ領域、カスタム ステータスバー パネルなどに挿入するコントロールで構成される複雑なプロパティもいくつかあります。ページ タイプは次から派生します。FrameworkElement各ページの XAML 内でデータ バインディングが適切に機能するようにします。これまでのところ、私が説明したことはすべてうまくいきます

問題は、すべてのページのリストをすばやく表示しようとしたときに発生します。ItemsControlアクティブなページのリストにバインドされた と、ページのプロパティにバインドされたラベルだけで構成される にDataTemplate割り当てられています(前述のように、これは単なる文字列です)。ただし、実行すると、リストに何も表示されず、エラー出力に次のように表示されます。ItemTemplateTitle

System.Windows.Data エラー: 25: ItemTemplate と ItemTemplateSelector は項目に対して有効ではありません。; タイプ='ウェルカムページ'

基本型をFrameworkElementテンプレート以外のものに変更すると機能しますが、各ページ内のデータ バインディングはひどく壊れます (ページの XAML 内で定義されElementNameた common の子である関係する両方のコントロールにもかかわらず、アイテムへのバインディングは失敗します)。FrameworkElement

DataTemplate を取得して FrameworkElement 派生型に適用する方法、またはデータ バインディングを取得して非 FrameworkElement をルートとする XAML ファイルで機能する方法を知っている人はいますか?

4

1 に答える 1

0

それはおそらくあなたにとって良いことではありませんが、私は同様の状況で同じ問題を抱えていました. アイテム コントロールを に置き換えただけlistviewです。を使用すると、listbox 追加のバインディングエラーが発生しました。

于 2010-08-18T07:51:33.610 に答える