Нахождение того, какая часть ListBox ItemTemplate была дважды нажата - PullRequest
0 голосов
/ 15 ноября 2008

У меня есть привязанный к данным ListBox, который использует собственный ItemTemplate для отображения моих вещей. ItemTemplate имеет сетку 4x2, которая содержит различные элементы. Теперь я хочу, чтобы мои пользователи могли получать разные фрагменты данных, в зависимости от подпункта, который они дважды щелкают - поэтому, если они дважды щелкают изображение в строке 0, столбце 0, они получают одно окно. Если дважды щелкнуть текстовый блок в строке 1, столбце 2, они получат окно другого типа с другой информацией.

И, конечно, информация будет уникальной для каждой строки в ListBox.

Есть ли простой способ получить информацию о том, какую строку / столбец сетки дважды щелкнул пользователь?

ItemTemplate определен во словаре внешних ресурсов, поэтому я не вижу способа привязать его к самим событиям ..

Нужно ли создавать пользовательский элемент управления или это возможно без него?

Заранее спасибо!

1 Ответ

1 голос
/ 15 ноября 2008

WPF представляет RoutedEvents . В вашем случае вы можете просто добавить обработчик события MouseDoubleClick к вашему ListBox.

<ListBox ItemsSource="{Binding Path=myData}"
         ItemTemplate="{StaticResource template}"
         MouseDoubleClick="ListBox_MouseDoubleClick">
</ListBox>

В указанном коде вы получите параметр типа MouseButtonEventArgs, который содержит информацию об оригинальном источнике.

MessageBox.Show(e.OriginalSource.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...