myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- GUI: WPF und XAML (https://www.mycsharp.de/wbb2/board.php?boardid=85)
--- DataGrid - RowEditEnding Event wird bei nur eine Zeile nicht ausgelöst ? (https://www.mycsharp.de/wbb2/thread.php?threadid=122529)


Geschrieben von _Cashisclay am 08.01.2020 um 16:18:
  DataGrid - RowEditEnding Event wird bei nur eine Zeile nicht ausgelöst ?
Hallo zusammen,

mein RowEditEnding Event wird nicht ausgelöst, wenn sich nur eine Zeile im Steuerelement befindet, es sei denn man klickt auf ein anderes Steuerelement dann merkt das DataGrid wohl das es keinen Focus mehr hat, selbst beim TabItem Wechsel wird es nicht ausgelöst.

Hat damit jemand schon Erfahrungen sammeln können?

XML-Code:
            <DataGrid   ItemsSource="{Binding DataGridExtraTubesItemsSource, UpdateSourceTrigger=PropertyChanged}"
                            SelectedItem="{Binding DataGridExtraTubesSelectedItem, UpdateSourceTrigger=PropertyChanged}"
                        Style="{StaticResource BaseDataGrid}"
                            RowStyle="{StaticResource BaseDataGridRow}"
                        x:Name="DataGridExtraTubes"
>

                <i:Interaction.Triggers>

                    <i:EventTrigger EventName="RowEditEnding">

                        <i:InvokeCommandAction Command="{Binding DataGridExtraTubesRowEditEndingCommand}" CommandParameter="{Binding ElementName=DataGridExtraTubes, Path=SelectedItem}"/>

                    </i:EventTrigger>

                </i:Interaction.Triggers>

            </DataGrid>

Grüße


Geschrieben von p!lle am 08.01.2020 um 16:28:
 
Wann wird es denn ausgelöst, wenn du mehr als eine Zeile hast?
Normalerweise sollte das Verhalten dann auch so sein, wenn du z.B. den Tab verlässt.

Klickst du bei mehreren Zeilen in eine andere Zeile?


Geschrieben von _Cashisclay am 08.01.2020 um 16:31:
 
Wenn du zwei Zeilen hast und zwischen der ersten und zweiten wechselst wird es ausgelöst.
Existiert nur eine Zeile und ich wechsel den Tab passiert nichts, klick ich aber auf ein anderes Control wird es wieder ausgelöst.


Geschrieben von p!lle am 08.01.2020 um 16:39:
 
Ja, d.h. wenn du bei zwei oder mehr Zeilen nicht die Zeile wechselst und den Tab verlässt, wird es auch nicht ausgelöst, richtig?
Das Problem besteht also auch bei mehreren Zeilen, wenn die Zeile nicht den Fokus verliert passiert nichts.


Geschrieben von _Cashisclay am 08.01.2020 um 16:41:
 
So gesehen .. Richtig unglücklich


Geschrieben von _Cashisclay am 09.01.2020 um 08:29:
 
Und was kann ich da am besten machen?


Geschrieben von _Cashisclay am 09.01.2020 um 09:44:
 
Hab es jetzt über das MouseLeave Event gesteuert, gefällt mir zwar nicht, aber mir fällt auch nichts besseres ein


Geschrieben von FZelle am 09.01.2020 um 18:20:
 
Was hattest du denn wirklich vor?
Denn editieren von Daten in einem DataGrid ist definitiv die falsche herangehensweise.


Geschrieben von _Cashisclay am 10.01.2020 um 08:11:
 
Weil?


Geschrieben von witte am 10.01.2020 um 10:52:
 
Warum verwendest du eigentlich nicht MVVM? Dann kannst du doch den Command aufrufen wenn sich ein Setter ändert.


Geschrieben von FZelle am 10.01.2020 um 18:19:
 
Zitat von _Cashisclay:
Weil?

Weil 30 Jahre SW Entwicklung gezeigt haben das es die falsche Herangehensweise ist.

Und beim verlassen der Zeile automatisch speichern wird dir auch über kurz oder lang auf die Füße fallen.


Geschrieben von _Cashisclay am 13.01.2020 um 08:50:
 
Zitat:
Warum verwendest du eigentlich nicht MVVM? Dann kannst du doch den Command aufrufen wenn sich ein Setter ändert.

Ich verwende MVVM, aber es gibt ja ein passendes Event zu der Geschichte deswegen fand ich es auch angebracht das zu benutzen. Aber ja man könnte es auch über den Setter machen nur wird dann ja jeder Änderung geschrieben, mir reicht es ja wenn die letzte Auswahl vom Benutzer gespeichert wird.

Zitat:
Weil 30 Jahre SW Entwicklung gezeigt haben das es die falsche Herangehensweise ist.

Und beim verlassen der Zeile automatisch speichern wird dir auch über kurz oder lang auf die Füße fallen.

Und wie sieht die richtige Herangehensweise aus?


Geschrieben von FZelle am 13.01.2020 um 20:18:
 
ListView/DataGrid zur Anzeige und Auswahl und dann einen DetailView zur Eingabe.
Zum speichern einen Button, dann kann man auch jederzeit ein Undo machen.


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 06.06.2020 12:53