Как получить событие одного клика на изображении в столбце DevExpress Grid Control с помощью wpf?

У меня есть панель навигации и один NavBar Группа содержит сетку управления. Я хочу получить событие отдельного щелчка на определенном изображении, которое находится в одном столбце элемента управления сеткой, и на событии щелчка на изображении я должен показать всплывающее окно для некоторых пунктов меню.

Я использую событие предварительного просмотра левой кнопкой мыши для элемента управления сетки, чтобы получить щелчок, но это не работает, потому что элемент управления сеткой находится в Navbar контроль.

В основном моя проблема в том, что я не могу получить один щелчок по изображению, которое находится в столбце элемента управления сеткой, а сам столбец сетки находится в одном Navbar группа NavBar Контроль.

По этой ссылке есть мой демонстрационный проект.

Любая помощь будет оценена.

1 ответ

Решение

Я видел ваш демонстрационный проект, и я думаю, что приведенный ниже код решит вашу проблему: -

private void gridControl1_PreviewMouseDown (отправитель объекта, MouseButtonEventArgs e) {

TableViewHitInfo hit = tableView1.CalcHitInfo (e.OriginalSource as DependencyObject);

if (hit.InRowCell) {

 gridControl1.View.FocusedRowHandle = hit.RowHandle;

   if (e.ClickCount == 1)

    {  
      if (e.XButton1 == MouseButtonState.Released)
        {

           if (hit.Column.FieldName == "number")
               {
                      var row = gridControl1.GetFocusedRow();
                      data d = (data)row;
                      MessageBox.Show(d.number.ToString());
                      x = d.number;
                    }
                    if (e.RightButton == MouseButtonState.Pressed)
                    {
                        if (hit.Column.FieldName == "image")
                        {
                            gridControl1.View.FocusedRowHandle = hit.RowHandle;
                            var row = gridControl1.GetFocusedRow();
                            data d = (data)row;
                            x = d.number;

                            popup.StaysOpen = true;
                            popup.IsEnabled = true;
                            popup.IsOpen = true;

                        }
                    }
                }
            }

        }
    }
Другие вопросы по тегам