DependencyProperty Default Value wirft Fehler

  • WPF

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Rootbob91.

    DependencyProperty Default Value wirft Fehler

    Guten Abend zusammen,

    ich bin aktuell dabei mir ein UserControl zu bauen.

    Dieses UserControl soll die Möglichkeit bieten, für ein Image eine Standard-URL zu hinterlegen, wenn dem Control es nicht möglich sein sollte (warum auch immer) eine URL zu bekommen (intern):

    XML-Quellcode

    1. <c:MeinControl DefaultURL="blabla.." />


    Die DefaultURL ist wie folgt angelegt:

    C#-Quellcode

    1. #region DefaultURL DP
    2. public string DefaultURL
    3. {
    4. get { return (string)GetValue(DefaultURLProperty); }
    5. set { SetValue(DefaultURLProperty, value); }
    6. }
    7. public static readonly DependencyProperty DefaultURLProperty = DependencyProperty.Register("DefaultURL", typeof(string), typeof(MeinControl), new PropertyMetadata(null));
    8. #endregion


    Dann gibt es noch eine Readonly-Eigenschaft URL, die die leztendliche URL wiedergeben soll.

    C#-Quellcode

    1. #region URL DP
    2. // Register the private key to set the value
    3. private static readonly DependencyPropertyKey URLPropertyKey = DependencyProperty.RegisterReadOnly("URL", typeof(string), typeof(MeinControl), new FrameworkPropertyMetadata(""));
    4. // Register the public property to get the value
    5. public static readonly DependencyProperty URLProperty = URLPropertyKey.DependencyProperty;
    6. // .NET Property wrapper
    7. public string URL
    8. {
    9. get
    10. {
    11. if (Images == null || Images.Count == 0)
    12. {
    13. return DefaultURL;
    14. }
    15. else
    16. {
    17. return (string)GetValue(URLProperty);
    18. }
    19. }
    20. private set { SetValue(URLPropertyKey, value); }
    21. }
    22. #endregion


    Mein Problem ist:
    Wenn ich mein UserControl via XAML erstelle und die DefaultURL festlege, bekomme ich zur Laufzeit folgenden Fehler:
    Cannot convert '' from type 'String' to type 'System.Windows.Media.ImageSource'

    Der Plan war aber, dass ein leerer Wert nicht zustande kommt, er also entweder die richtige URL nehmen soll, oder die DefaultURL. Eigentlich sollte hier doch kein leerer wert zustande kommen, auch wenn ich oben

    C#-Quellcode

    1. new FrameworkPropertyMetadata("")
    geschrieben habe?

    Wie löse ich das Ganze, dass statt ein leerer String, dann die gewünscht DefaultURL kommt?

    Danke und Grüße!
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..