Hallo, wir haben folgendes Problem: Wir möchten in einem DataGrid die Änderung einzelner Werte bereits nach dem verlassen der Zelle in unser ViewModel commiten ( mittels datagrid.CommitEdit(); im DataGrid_CurrentCellChanged Event) Das funktioniert auch soweit ganz gut. Problem ist jetzt allerdings, dass der Focus verloren geht. Der Benutzer kann nicht direkt im Datagrid weiter arbeiten ohne selber wieder eine Zelle zu markieren. Im Standardverhalten (auto Commit wenn Zeile verlassen wird) bleibt der Focus erhalten.
Wie kann ich nach dem manuellem CommitEdit Aufruf den Focus wieder auf meine gewünschte Zelle setzten?
Wir haben schon viel gegoogelt und einige Varianten getestet. Es war aber nichts brauchbares dabei.
Mit UpdateSourceTrigger=LostFocus werden die Werte ins Viewmodel übernommen. Die Abhängigen Zellen bekommen die Änderung allerdings erst mit wenn diese den Focus erhalten. Gibt es irgendwie die Möglichkeit mein Datagrid zu refreshen?
Implementierst Du denn im Zeilen-ViewModel das Interface INotifyPropertyChanged und löst ein PropertyChanged-Event aus (auch für abhängige Properties!)?
Mein ViewModel wird vom CSLA-Framework erzeugt. Da hab ich leider nicht die Möglichkeit ein PropertyChanged Event auszulösen (bzw. weiß ich nicht wie).