Alos die Enum's sind nun übersetzbar.
Erst dachte ich es funktioniert alles super.
Allerdings musste ich feststellen, dass nur dinge die geladen worden sind dadrüber angesprochen werden können.
Und besonders verschachtelte ViewModels sind so nicht zu erreichen, z.B. Listen in VM.Die angezeigten Listen werden in Textboxen nicht aktualisiert, somit wird der Dezimaltrennung nicht passend ausgetauscht.
Hat zufällig da jemand eine Idee?
Hier der Code:
GetBindingExpression – a good way to iterate over all dependency properties in visual tree in Silverlight 3?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| private void BuildBindingList(FrameworkElement element) { FieldInfo[] infos = element.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.Static); foreach (FieldInfo field in infos) { if (field.FieldType == typeof(DependencyProperty)) { DependencyProperty dp = (DependencyProperty)field.GetValue(null); BindingExpression ex = element.GetBindingExpression(dp);
if (ex != null) { ex.UpdateTarget(); } } } int children = VisualTreeHelper.GetChildrenCount(element); for (int i = 0; i < children; i++) { FrameworkElement child = VisualTreeHelper.GetChild(element, i) as FrameworkElement; if (child != null) { BuildBindingList(child); } } } |
Wie über den Link zu sehen gibt es auch eine Möglichkeit über die Assamply dieses zu realisieren.
Nur funktioniert das bei mir nicht wirklich. Und ich kann mir nicht vorstellen das dort Nicht geladene Codeteile darüber aktualisiert werden.
Moderiert von Th69: URL-Titel hinzugefügt.
Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat. (Albert Einstein)