Während es in der finalen Version des Buches noch funktionierte, scheint nun der NumberFlicker aus Kapitel 4 nicht mehr zu funktionieren. Man bekommt die Zahl des benutzerdefinierten Steuerelements in der Ausführung nicht dargestellt.
Zeit also diesen Bug zu fixen.
Zuerst wurde die Variable in der NumberFlicker.xaml.cs-Datei in eine DependencyProperty geändert, damit die Datenbindung sauber funktioniert.
Der geänderte Quellcode sieht nun, wie folgt aus:
1: public static readonly DependencyProperty NumberValueProperty = 2: DependencyProperty.Register("NumberValue", typeof(int), typeof(FrameworkElement), new PropertyMetadata(0)); 3: 4: public int NumberValue 5: { 6: get 7: { 8: return (int) GetValue(NumberValueProperty); 9: } 10: set 11: { 12: if (value == 10) 13: { 14: value = 0; 15: } 16: if (value == -1) 17: { 18: value = 9; 19: } 20: SetValue(NumberValueProperty, value); 21: NotifyPropertyChanged("NumberValue"); 22: } 23: }
Zusätzlich war eine Änderung am XAML Markup notwendig, in welcher die Bindungsdeklaration angepasst, wie auch die Vordergrundfarbe des TextBlock-Elements deklariert wurde.
Die geänderte Zeile sieht nun, wie folgt aus:
<TextBlock x:Name="numberTextBlock" TextWrapping="Wrap" Text="{Binding NumberValue}" FontSize="64" FontFamily="Segoe WP" Margin="-30,-39,-30,-30" TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Black" />
Zwar ist damit immer noch nicht die Anzeige im Designer des Visual Studio möglich, jedoch ist das Steuerelement wieder benutzbar.
Die aktualisierte Variante gibt es hier als Download: