2016-06-14 5 views
0

Ich schaue auf ein WPF-Steuerelement (NotifyIconWpf https://bitbucket.org/hardcodet/notifyicon-wpf/src) und ich verstehe nicht ganz, wie die Bindung auf Abhängigkeitseigenschaft funktioniert.WPF-Abhängigkeitseigenschaftsbindung

Die Steuerung verfügt über eine Abhängigkeitseigenschaft genannt TaskbarIcon.IconSource, die das Symbol für das System Tray-Icon setzen verwendet wird, aus dem Code kann ich sehen, IconSource vom Typ ImageSource.

In XAML kann es jedoch auf eine Zeichenfolge wie IconSource="/Red.ico" festgelegt werden, oder ich kann es an IconSource="{Binding MyIcon}" binden, wobei MyIcon eine Zeichenfolge im DataContext ist.

Wie wird diese Zeichenkette magisch in ImageSource konvertiert .. fehle ich etwas offensichtlich hier?

Danke fürs Lesen.

Antwort

2

Die Umwandlung wird durch die ImageSourceConverter Klasse getan, die von string, Uri und byte[] zu ImageSource umwandeln kann.

Es ist, als Typeconverter für die wie diese ImageSource Klasse registriert:

[TypeConverterAttribute(typeof(ImageSourceConverter))] 
public abstract class ImageSource : Animatable, IFormattable 

Lesen Sie mehr über Typumwandlung hier: TypeConverters and XAML.