私は奇妙な状況にいます。特定のカテゴリでグループ化されたアイテムのリストを生成しています。私のビュー モデルでは、各リスト アイテムを格納するために作成したクラスを表す のインスタンスReadOnlyDictionary<string, List<CustomObject>>
にアイテムを格納しています。CustomObject
文字列はカテゴリです。私の見解では、StackPanel
その<ItemsControl>
中に があります。項目コントロールには、ItemTemplate
次のような種類があります。
<DataTemplate x:Key="DataTemplateName">
<StackPanel>
<Separator />
<TextBlock Text="{Binding Key}" />
<ItemsControl ItemsSource="{Binding Value}" />
</StackPanel>
</DataTemplate>
上記のバインディングはうまく機能します。問題は、最初の項目の上にセパレーターを置きたくないということです。だから、最初のアイテムには別のスタイルが必要だと思います.
を使用してみましたItemTemplateSelector
が、問題は、現在のアイテムにしかアクセスできないため、最初の要素にあるかどうかを知る方法がないことです。私も次のようなことをしてみました
<Separator
Visibility={Binding ShowSeparator, RelativeSource={RelativeSource AncestorType={x:Type CustomObject}}}" />
...ここで、ShowCategories は CustomObject クラスの依存関係プロパティであり、ReadOnlyDictionary インスタンスを見て、区切り記号を表示するかどうかを示します。しかし、これを行うと ShowCategories にアクセスすることはありません。あったとしても、どのアイテムがそれを呼び出しているかを知る方法はないと思います。
そう。私は何をしますか?