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: