So, nun von zu Hause aus kann ich mich ausführlicher äußern:
Dezipaitor hat folgendes geschrieben : |
Was hast du da gemacht |
Viiiel Reflection-Voodoo

. Hab sie gerade leider nicht einmal selbst zur Hand, da ich MVVM in dieser Form zum ersten Mal in einem Praktikum verwendet und danach noch nicht neu implementiert habe. Pete Brown hat eine kurze Übersicht zu dem Original-Code, den man mit solchen Tricks vermeiden will:
10rem.net/blog/2010/...-wpf-and-silverlight. Wobei ich im Vergleich zu seiner "aktiven" Implementierung eine "passive" (heutzutage wohl eher "reaktiv"

?) gewählt habe: "Wirf NotifyPropertyChanged für ScaleOut, wenn sich IsFlipped oder Scale geändert hat". Die "..." sollten für eine ganz normale INotifyPropertyChanged-Implementierung stehen - die füge ich per Template ein und klappe sie danach nie mehr auf.
Unabhängig von der internen Implementierung sollte der XAML-Code in allen Fällen gleich aussehen (angenommen, das VM sei im DataContext):
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| <Slider Value="{Binding Scale}" ... /> <CheckBox Value="{Binding IsFlipped}" ... />
<Grid.LayoutTransform> <TransformGroup> <ScaleTransform ScaleX="{Binding ScaleOut}" ScaleY="{Binding ScaleOut}"/> </TransformGroup> </Grid.LayoutTransform> |