Запуск MouseLeftButtonDownEvent два раза

#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

http://forums.silverlight.net/forums/p/29101/95353.aspx

Комментарии:

1. Для меня похоже, что ссылка касается Silverlight Beta 2