Treppenhaus im Casa Ballo
Sam Jost
 RSS-Abo



Mehr von Sam
radeldudel.de durchsuchen:
Farbmanagement für die Digitalfotografie

Ich wollte es ja unbedingt so, wenn schon ein Programm neu schreiben, dann bitte auch mit der allerneuesten Technologie, damit es nicht schon vor Fertigstellung wieder veraltet ist.

Entsprechend benutze wir für unser aktuelles Programmierprojekt c#, das .Net Framework 3.0, den SQL Server 2005 und die neue Windows-Oberfläche Windows Presentation Foundation (WPF), die noch nicht mal fertig ist.

Insgesamt macht das auch echt Spaß, aber leider stoße ich immer mal wieder auf tückische kleine Probleme, die einfach daran liegen dass diese Plattform noch nicht besonders oft für ernsthafte Projekte benutzt wurde.

Einen Haufen dieser kleinen Tücken konnte ich schon umgehen, und ein paar der schwierigeren Fälle, teilweise auch noch ohne Lösung, werde ich hier so nach und nach Präsentieren.

WPF verspricht unter anderem ja die Trennung von Oberfläche und Logik: Die Oberfläche wird in Xaml-Dateien gespeichert, die Verarbeitung in normalen cs-Dateien als 'Code-Behind'.

Und zur optimalen Verbindung dieser beiden Welten empfiehlt Microsoft Data Binding. Data Binding macht es vergleichsweise einfach ein Feld o. Ä. an der Oberfläche mit den 'echten Daten' im Code-Behind. Durch ein paar geschickt verknüpfte Ereignisse werden dann die echten Daten angepasst wenn sie an der Oberfläche verändert werden, und die Felder auf der Oberfläche kriegen mit wenn man im Hintergrund etwas an den Daten ändert.

Soweit sehr schön. Nur leider gibt es da Momente wo das nicht funktioniert, zum Beispiel wenn die Tastatur ins Spiel kommt.

Mal angenommen ich habe eine Eingabemaske mit ein paar Eingabefeldern für Texte (TextBox) und einem Button den man drücken kann.

Macht man nun ein paar Eingaben und drückt den Knopf mit der Maus, klappt alles wie man es sich denkt: dadurch das man den Knopf anklickt bekommt dieser den Fokus, dadurch verliert das Eingabefeld in dem man grade noch stand den Fokus, und wenn ein Eingabefeld den Fokus verliert speichert es seine Eingabe über Data Binding.

Nun kann man für einen Knopf aber auch ein Tastatur-Kürzel einrichten, z. B. Alt+S - wenn man einen Knopf über ein Tastatur-Kürzel aufruft bekommt er nicht den Fokus, was zur Folge hat das die Eingabe den Fokus nicht verliert, also wird die Eingabe des aktuellen Eingabefeldes nicht gespeichert - man macht also eine Eingabe, und je nachdem ob man mit der Maus oder per Tastaturkürzel speichert wird die Eingabe mal angenommen und mal nicht.

Eklige Fehlerquelle.

Veröffentlicht am Mi, 04. Okt 2006, 11:06 von Sam

Social Plugins von Facebook, Google und Twitter für www.radeldudel.de abschalten.

Anmelden, um den Artikel zu diskutieren.

Heilpraktiker in Flensburg
© 2004-2014 Sam Jost, Flensburg. Unerlaubte Vervielfältigung untersagt.
Die Inhalte von www.radeldudel.de sind meine ganz private Meinung.