我處於一個奇怪的情況。我正在生成按特定類別分組的項目列表。在我的視圖模型中,我將項存儲在ReadOnlyDictionary<string, List<CustomObject>>
的實例中,其中CustomObject
表示我創建的用於存儲每個列表項的類。該字符串是類別。在我看來,我有一個StackPanel
其中<ItemsControl>
。該項目的控制有一個ItemTemplate
這看起來有點像這樣:Wpf數據模板 - 如何訪問ItemsControl中項目的父項?
<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永遠不會被訪問。我想即使是這樣,它也無法知道哪個項目正在調用它。
所以。我該怎麼辦?
您可以將DataTrigger添加到分隔符樣式,如果選擇了第一個項目,它將摺疊分隔符。 –