У меня есть стиль на ListViewItem, который устанавливает свойство ThemeOverride элемент шаблона стиля с DataTemplateSelector
<Style x:Key="{x:Type ListViewItem}" TargetType="{x:Type ListViewItem}">
<Setter Property="Template" Value="{StaticResource ListViewItemTemplate}"/>
</Style>
Однако, в одном из случаев, когда я использую ListView Я хочу использовать DataTemplateSelector чтобы определить, какой шаблон использовать
<Style x:Key="MyListStyle" TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListView}}">
<Setter Property="ItemTemplateSelector" Value="{StaticResource MyItemTemplateSelector}"/>
</Style>
Он применяется как этот
<ListView Style="{StaticResource MyListStyle}/>
Тем не менее, казалось бы, что стиль в элементе берет верх и этот стиль применяется ко всем элементам ListView. Я нашел this question, у которого была аналогичная проблема, однако решение просто не использует шаблон в стиле Item вообще. Мне нужно это сохранить.
Я играл с ContentTemplateSelector по рестайлинга ListViewItems в этом ListView
<Style x:Key="MyItemStyle" BasedOn="{StaticResource {x:Type ListViewItem}}" TargetType="{x:Type ListViewItem}">
<Setter Property="ContentTemplateSelector" Value="{StaticResource MyItemTemplateSelector}"/>
</Style>
Однако шаблон на другой стиль используется вместо этого. Если я попробую обнулить шаблон, то ничего не появится вообще!
<Setter Property="Template" Value="{x:Null}"/
Есть ли способ, что я могу заменить шаблон на ListViewItems для данного элемента управления ListView, сохраняя при этом остальной части моего стиля?
Во-первых, DataTemplateSelector не является стилем. Во-вторых, как вы пытались применить MyItemStyle? Вы определили его. Что еще вы сделали, чтобы применить его? –
' ': Кто-нибудь когда-нибудь говорил вам, что эффект Setter полностью зависит от *, где он находится *? Итак, почему отказываются делиться этой информацией? –
@EdPlunkett для вашего первого пункта. Я обновлю свой вопрос, чтобы показать, как применяется стиль. Для вашего второго пункта, нет. Вы можете уточнить? – Boumbles