#c# #.net #wpf
#c# #.net #wpf
Вопрос:
у меня есть сетка в xaml, которая содержит изображение / текстовый блок / кнопки подряд. Для того, чтобы строка реагировала на один щелчок, я добавил следующий код в файл cs.
this.radFilestoPrint.CellLoaded = new EventHandler<Telerik.Windows.Controls.GridView.CellEventArgs>(filesToPrintGrid_CellLoaded);
void filesToPrintGrid_CellLoaded(object sender, Telerik.Windows.Controls.GridView.CellEventArgs e)
{
if (e.Cell.Column != radFilestoPrint.Columns[4] amp;amp; e.Cell.Column != radFilestoPrint.Columns[5])
{
e.Cell.AddHandler(GridViewCell.MouseLeftButtonDownEvent, new MouseButtonEventHandler(radFilestoPrint_MouseDoubleClick), true);
}
}
Теперь проблема в том, что mousedownevent запускается два раза. Я проверил источник сообщения, как показано ниже, и обнаружил, что оно взято из самого изображения. Я устанавливаю e.Handled = true
после обработки сообщения, хотя я заметил, что получаю e.Handled
значение true с самого первого раза и далее.
if (((FrameworkElement)e.Source).GetType() != typeof(System.Windows.Controls.Image))
{
return;
}
Почему событие запускается два раза? Как я должен это предотвратить?
Пожалуйста, дайте совет.
С уважением,
Джон.
Комментарии:
1. Почему событие запускается два раза? Как я должен это предотвратить?
Ответ №1:
Я думаю, может быть, вы обрабатываете свое событие в worst place
, и оно обрабатывается 2 раза, а при одном событии Down оно запускает два события.
для каждой ячейки, загруженной не для указанного вами столбца,
попробуйте обработать ваше событие в другом месте
Комментарии:
1. Может быть, вы обрабатываете свои
cellloaded event
два раза2. да, это будет обработано, поскольку есть четыре столбца. я думаю, что просто добавьте обработчик в ячейки. если есть обработчик ячейки, он будет заменен.
3. нет, это не решение, и это не причина, по которой событие происходит два раза.
Ответ №2:
Я считаю, что это ошибка в WPF
Комментарии:
1. Для меня похоже, что ссылка касается Silverlight Beta 2