Laden...

Trotz Abfangen von MouseDoubleClick-Event (Telerik RadGridView) wird Klick zweimal ausgeführt

Erstellt von Campy vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.716 Views
C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 7 Jahren
Trotz Abfangen von MouseDoubleClick-Event (Telerik RadGridView) wird Klick zweimal ausgeführt

Hallo zusammen,

ich fange über Interaction.Triggers die MouseDoubleClick Events eines GridViews (Telerik RadGridView) ab und öffne dann das Detail / Bearbeitungsfenster des Eintrages.
(In etwa wie eine E-Mail in Outlook)


<i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseDoubleClick" >
                    <i:InvokeCommandAction Command="{Binding EditCommand}" />
                </i:EventTrigger>
</i:Interaction.Triggers>

Leider wird trotzdem ein weiterer Klick "ausgeführt" der dann im Bearbeitungsfenster einen Klick ausführt oder das Fenster in den Hintergrund geraten lässt.

Kann ich dieses Verhalten in irgendeiner Weise unterbinden?

A programmer is just a tool, which converts coffeine into code! 🙂

1.040 Beiträge seit 2007
vor 7 Jahren

Versuche mal bitte nachzustellen, ob das Problem auch dann auftritt, wenn du nicht das RadGridView von Telerik verwendest.

C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 7 Jahren

Hallo p!lle,

ich habe soeben eines der Grids durch das Standard WPF DataGrid ausgetauscht.
Am Verhalten hat sich leider nichts geändert 😦

A programmer is just a tool, which converts coffeine into code! 🙂

1.040 Beiträge seit 2007
vor 7 Jahren

Okay, kannst du dann den Code mal in abgespeckter Version zur Verfügung stellen?

C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 7 Jahren

Hallo p!lle,

anscheinend passiert das aber egal bei welchem Control ich einen Doppelklick tätige.
Der zweite Klick wird immer in das neue Fenster mit übertragen.

Die Fenster öffne ich folgendermaßen (Beispiel):


<Gridex:RadGridViewEx x:Name="radGridView" ItemsSource="{Binding ItemList}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseDoubleClick" >
                    <i:InvokeCommandAction Command="{Binding EditCommand}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn  UniqueName="Number" DataMemberBinding="{Binding Number}" Header="Nr.">
                    <telerik:GridViewDataColumn.AggregateFunctions>
                        <telerik:CountFunction Caption="Anzahl: " />
                    </telerik:GridViewDataColumn.AggregateFunctions>
                </telerik:GridViewDataColumn>
                
        </Gridex:RadGridViewEx>


            CustomerTabViewModel vm = new Customers.CustomerTabViewModel(customer);
            var vw = new CompositionTabView(vm);
            ModalDialogService.Service.Show(vw, vm);

 public class ModalDialogService : IModalDialogService
    {
        protected ModalDialogService() { }

        private static IModalDialogService _Service = null;
        public static IModalDialogService Service
        {
            get
            {
                if (_Service == null)
                    _Service = new ModalDialogService();
                return _Service;
            }
        }

        public void ShowDialog<TDialogViewModel>(IModalWindow view, TDialogViewModel viewModel, Action<TDialogViewModel> onDialogClose)
        {
            view.DataContext = viewModel;
            if (onDialogClose != null)
            {
                view.Closed += (sender, e) => onDialogClose(viewModel);
            }
            view.ShowDialog();
        }

        public void ShowDialog<TDialogViewModel>(IModalWindow view, TDialogViewModel viewModel)
        {
            this.ShowDialog(view, viewModel, null);
        }

        public void Show<TDialogViewModel>(IModalWindow view, TDialogViewModel viewModel, Action<TDialogViewModel> onDialogClose)
        {
            view.DataContext = viewModel;
            if (onDialogClose != null)
            {
                view.Closed += (sender, e) => onDialogClose(viewModel);
            }
            view.Show();
        }

        public void Show<TDialogViewModel>(IModalWindow view, TDialogViewModel viewModel)
        {
            this.Show(view, viewModel, null);
        }
    }

A programmer is just a tool, which converts coffeine into code! 🙂

1.040 Beiträge seit 2007
vor 7 Jahren

Und das XAML?

C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 7 Jahren

Habs oben mal dazu editiert - sorry.

A programmer is just a tool, which converts coffeine into code! 🙂

1.040 Beiträge seit 2007
vor 7 Jahren

Hmm, sieht jetzt erstmal nicht verkehrt aus.

Mit Telerik kann ich es nicht testen.
Mit einem normalen DataGrid tritt der Fehler bei mir auf jeden Fall nicht auf. 🤔