Я пишу папку браузера, и я хочу открыть папки с двойным щелчком. Мои папки переплетены в ListView с GridView внутри и я отслеживание двойного щелчка, как это:Отслеживать, где я нажал в ListView MVVM
<i:EventTrigger EventName="MouseDoubleClick">
<Custom:EventToCommand Command="{Binding FolderOpenedCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem, ElementName=FolderView}"/>
</i:EventTrigger>
Но у меня раздражает вопрос: если я дважды щелкните на GridView сплиттера в Autosize колонны, он будет также открыть выбранную папку , чего я не хочу. Итак, у меня есть несколько вариантов: поместите обработчик событий внутри стиля и используйте его с кодом позади или оставьте его как есть, но в моем случае я хочу реализовать его с помощью сценария MVVM, потому что codebehind не подходит для меня.
Мой вопрос: как я могу отправить свой параметр как SelectedItem, только если я нажму на элемент и null, когда я нажму на другое?
Я хочу отслеживать это, чтобы сделать правильное поведение, поскольку по какой-то причине я не могу применить двойной щелчок к gridview.
Не могли бы вы помочь мне с этой проблемой?
EDIT: Позволяет уточнить одну вещь, чтобы убедиться, что мы говорим о том же: я могу определить что-то вроде этого
<Style x:Key="itemStyle" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource MetroListViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="FolderView_OnMouseDoubleClick"></EventSetter>
</Style>
Bu Я не могу сделать так:
<Style x:Key="itemStyle" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource MetroListViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="{Binding OpenFilesCommand}"></EventSetter>
</Style>
Поскольку Это приведет к исключению. Теперь я хочу понять, как я могу применить команду здесь, если Handler не принимает команду? Нужно ли писать некоторые прикрепленные свойства?
Ваш выбор использования «ListView» с помощью «GridView» необычен для вашего требования ... браузер папок чаще всего реализуется с помощью элемента управления TreeView. – Sheridan
Windows Explorer использует treview со списком для подробного просмотра. Я делаю то же самое – Denis
Ahh извините, я думал, вы говорите о левой колонке. – Sheridan