Я реализовал ListView с некоторыми ListViewItems. ListViewItem состоит из двух меток в сетке. Чтобы не иметь подчеркивания, есть письмо, я применил исправление, установив RecognizesAccessKey в false.DoubleClick не обрабатывается ListViewItem при щелчке между ярлыками, который содержит ListViewItem
<Grid.Resources>
<Style x:Key="{x:Type Label}" BasedOn="{StaticResource {x:Type Label}}" TargetType="{x:Type Label}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
VerticalAlignment="{TemplateBinding VerticalAlignment}"
Margin="5"
RecognizesAccessKey="False" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
Я хотел бы обработать двойной щелчок на элементе ListViewItem. Добавление его в InputBindings в ListView не работает. another question here on StackOverflow обсуждает эту проблему.
Ответ на этот другой вопрос предполагает переместить его в InputBindings самого ListViewItem. Обычно это работает, но при нажатии между ярлыками двойной щелчок не обрабатывается.
Это вызвано приведенным выше кодом. Удаление маржи и наличие обеих ярлыков рядом друг с другом было бы «решением», но я хотел бы, чтобы они были близки друг к другу. Конечно, удаление кода выше полностью устраняет проблему.
Но с этим полем между ярлыками, которые не обрабатывают DoubleClick, есть пробел. Это не изменится, если маржа установлена непосредственно на ярлыках.
Совершенно иное решение, предлагаемое on yet another question, заключается в реализации привязанного поведения к ListView. И да, тогда неважно, где я нажимаю, обрабатывается DoubleClick. Тем не менее, он даже обрабатывается, когда не нажимает на элемент, а где-то в ListView. ListView обычно имеет некоторое пустое пространство ниже последнего элемента, и при нажатии там DoubleClick все еще обрабатывается. Я хотел бы обрабатывать его только тогда, когда элемент зависает.
У меня нет каких-либо сильных предпочтений относительно того, где реализован DoubleClick (т. Е. Как ListView, так и ListViewItem в порядке), но я не уверен, как добиться успеха. Обе реализации имеют один недостаток, и я не понял, как обойти это.
У кого-нибудь есть идея, как получить один из двух подходов выше работы.