Как дважды щелкнуть с AttachedCommandBehavior только внутри области DataGrid - PullRequest
0 голосов
/ 06 марта 2012

Мы разрабатываем приложение в WPF, программирование с низким уровнем кода. Мы используем много ресурсов MVVM и Binding. Я искал в Интернете, пытаясь найти способ сделать Двойной щелчок по сетке без кода, и мы обнаружили проект AttachedCommandBehavior (http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/),, но мы получаем неожиданную проблему:

Когда пользователь щелкает в DataGrid, он работает нормально, но не следует запускать Mouse_Double_Click при нажатии на заголовок столбца или ScrollViewer. Итак, как мы можем это исправить? Нам нужно, чтобы AttachedCommandBehavior запускал событие, когда пользователь щелкает только внутри области DataGrid. Я скачал ваш источник, чтобы узнать, получает ли он, по какому объекту щелкают, но я не нашел его.

С уважением!

1 Ответ

0 голосов
/ 13 марта 2012

Вот как мы решили проблему: мы создали компонент UserControl в качестве DataGrid, и в его программный код добавили:

  private void dtgExtended_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        if (sender is Control
            && (!e.OriginalSource.ToString().Equals("Microsoft.Windows.Themes.ScrollChrome") && !e.OriginalSource.ToString().Equals("System.Windows.Shapes.Rectangle")))
        {
            e.Handled = false;
            DataGridDoubleClick c = new DataGridDoubleClick();
        }
        else
            e.Handled = true;
    }

По сути, это только определяет, щелкает ли пользователь внутри прямоугольника области ScrollBar или ScrollBar. Он не определяет, есть ли щелчок в заголовке столбца.

Но наконец-то решил мою проблему.

...