Я немного новичок в WPF, и у меня есть связывающий просмотр списка, использующий gridview для отображения списка объектов и их свойств. Весь мой проект использует собственный стиль из MaterialDesign, который дает всем темную тему.
Я хотел добавить функцию двойного клика к элементам в моем списке и обнаружил, что могу сделать это, изменив стиль ListViewItem. Однако это переписало стиль по умолчанию из моей темы MaterialDesign, поэтому элементы стали ужасными.
Затем я добавил BasedOn="{StaticResource {x:Type ListViewItem}}"
, чтобы восстановить стиль по умолчанию, но затем привязка перестала работать и перестала отображать свойства объектов?
Может ли быть лучший способ добавить сеттеры к стилю элемента?
И как установка стиля что-либо меняет в привязках данных?
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}">
<EventSetter Event="MouseDoubleClick" Handler="HitsoundLayer_MouseDoubleClick"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="_Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="_Amount" Width="90" DisplayMemberBinding="{Binding Times.Count}" />
<GridViewColumn Header="_SampleSet" Width="120" DisplayMemberBinding="{Binding SampleSetString}" />
<GridViewColumn Header="_Hitsound" Width="120" DisplayMemberBinding="{Binding HitsoundString}" />
<GridViewColumn Header="_Sample Path" Width="1000" DisplayMemberBinding="{Binding SamplePath}" />
</GridView>
</ListView.View>
То, что я ожидал, это ListView, который выглядит следующим образом https://i.imgur.com/Z0oORhE.png и имеет работающий двойной щелчок.
Но я получил ListView, который выглядит следующим образом https://i.imgur.com/6o6SCyW.png и имеет двойной щелчок.
Вот так выглядит без BasedOn="{StaticResource {x:Type ListViewItem}}"
https://i.imgur.com/OO4Rg2v.png