Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Как упоминает @ Grx70 в комментарии к этому ответу, жест [h2] мыши, определенный в родительском ListView
, не будет работать для ListViewItem
, потому что этот элемент обрабатывает этот жест, чтобы получить фокус, (g2).
Вы можете перенести свою обработку InputBinding
на ListViewItem
:
<ListView Name="listView1" ItemsSource="{Binding A}">
<ListView.ItemTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding}">
<ContentPresenter.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding DataContext.ItemSelectCommand, ElementName=listView1}" CommandParameter="{Binding ElementName=listView1,Path=SelectedItem}"/>
</ContentPresenter.InputBindings>
</ContentPresenter>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Вы также можете узнать больше о работе InputBinding
в это qestion , есть ответ, объясняющий это. Ответ также предполагает создание приложенного поведения.
MouseClick
обрабатывается всеми фокусируемыми элементами управления, чтобы получить фокус, тем самым не позволяя ему пузыриться. – Grx70 6 February 2015 в 11:11