1

さまざまなタイプのアイテムのグループのセットがあり、すべてが共通の基本タイプ (ItemBase) から継承されています。私の各グループには、タイプの Items コレクションがありObservableCollection<ItemBase>ます。

私の SemanticZoom.ZoomedInView では、DataTemplateSelector を設定できます。SelectTemplateCore() では、項目パラメーターをキャストして、適用するテンプレートを決定できます。

ただし、ズームアウトしたビューでは、オブジェクトは DependencyObjects として渡されます。渡されたデータをどのようにして使用するかを決定する方法を理解することはできません。

ズームアウト ビューで GridView の項目ソースを設定するには、次を使用します。

(semZm.ZoomedOutView as ListViewBase).ItemsSource = this.groupedItemsViewSource.View.CollectionGroups;

これは、ズームイン ビューとズームアウト ビューを同期させる唯一の方法であるように思われるため (ズームアウト ビューでグループをクリックすると、ズームイン ビューの適切な場所に移動して、そのグループの詳細を確認できます。

だから、SelectTemplateCore() で実際のグループを取得するという点で明らかな何かが欠けていますか、または ZoomedOutView の ItemsSource をバインドするより良い方法があることに失敗していますか?

4

1 に答える 1

2

DependencyObjectの使用可能なタイプへのキャストを処理する適切な方法については、この質問への回答を参照してください。

基本的に、メンバーにアクセスするには、それをICollectionViewGroupにキャストします。

于 2012-07-16T14:26:16.817 に答える