C# / WPF ObservableDictionary

Leider sieht das .NET Framework bisher keine native Implementierung für ein ObservableDictionary vor. Wer trotzdem das Dictionary Pendant zur ObservableCollection haben möchte, muss dieses selbstständig implementieren. Im selben Zug sollte auch ein ObservableKeyValuePair als Pendant zum KeyValuePair implementiert werden. Hierbei sollten die beiden Events CollectionChanged sowie PropertyChanged implementiert werden. Um das Ganze zu realisieren, sollte also zunächst ein ObservableKeyValuePair implementiert werden. Hierbei gibt es verschiedene Möglichkeiten. Ich persönlich bevorzuge hierbei die Verwendung einer sealed class. Natürlich sollte es auch serialisierbar sein und möglichst in jedem Projekt verwendet werden können.  Weiterlesen

ASP.NET MVC – Flag Enum als Checkbox Liste Binden

In ASP.NET gibt es einige nützliche Hilfsmittel, um HTML-Objekte an ein Model zu binden. So wird aus „@Html.TextBoxFor(m => m.MyProperty)“ zum Beispiel eine TextBox, welche die Daten beim Absenden der Form automatisch in die entsprechende Property des Objektes schreibt und auch ausliest. Für was es allerdings keine vorgefertigte Möglichkeit gibt, ist das Binden von FlagEnum’s, sprich Enum Datentypen, die eine Mehrfachauswahl über das Flag-Attribut zulassen. Um eine solche Funktionalität zu bekommen, muss man aktuell selbst tätig werden und zwei Klassen erstellen, die dies erlauben. Hierfür braucht man einen „ModelBinder“ sowie eine Erweiterung für die Html-Klasse. Natürlich sollte man sich aber zuvor bereits darüber im Klaren sein, wie das Flag-Attribute bei einem Enum das Verhalten beeinflusst.  Weiterlesen