Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DataGrid - RowEditEnding Event wird bei nur eine Zeile nicht ausgelöst ?
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

DataGrid - RowEditEnding Event wird bei nur eine Zeile nicht ausgelöst ?

beantworten | zitieren | melden

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?
            <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
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1.040

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1.040

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

So gesehen .. Richtig
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

Und was kann ich da am besten machen?
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

Hab es jetzt über das MouseLeave Event gesteuert, gefällt mir zwar nicht, aber mir fällt auch nichts besseres ein
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.976

beantworten | zitieren | melden

Was hattest du denn wirklich vor?
Denn editieren von Daten in einem DataGrid ist definitiv die falsche herangehensweise.
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

Weil?
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 955

beantworten | zitieren | melden

Warum verwendest du eigentlich nicht MVVM? Dann kannst du doch den Command aufrufen wenn sich ein Setter ändert.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.976

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
_Cashisclay
myCSharp.de - Member



Dabei seit:
Beiträge: 277

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.976

beantworten | zitieren | melden

ListView/DataGrid zur Anzeige und Auswahl und dann einen DetailView zur Eingabe.
Zum speichern einen Button, dann kann man auch jederzeit ein Undo machen.
private Nachricht | Beiträge des Benutzers