none
Style mit GridLength RRS feed

  • Frage

  • Hallo!

    Ich habe in der CodeBehind einen Style für eine DataGrid-Column:

    private Style myDGHeaderStyleTwoColumn()
    {
        var style = new Style(typeof(System.Windows.Controls.Primitives.DataGridColumnHeader));
        style.Setters.Add(new Setter(ForegroundProperty, Brushes.DarkGray));
        style.Setters.Add(new Setter(BackgroundProperty, Brushes.DarkGray));
        style.Setters.Add(new Setter(WidthProperty, new GridLength(3)));
        return style;
    }
    

    Zur Laufzeit wird mir bei der Zuweisung der WidthProperty folgende Fehlermeldung angezeigt:

    Message: Ein Ausnahmefehler des Typs "System.ArgumentException" ist in PresentationFramework.dll aufgetreten.
    
    Zusätzliche Informationen: "3" ist kein gültiger Wert für die Eigenschaft "System.Windows.FrameworkElement.Width" auf einem "Setter".
    

    Der Width Eigenschaft ordne ich aber doch GridLength(3) zu und das müsste doch passen?! Mit DataGridLength(3) funktioniert es übrigens auch nicht.

    Woran könnte das denn liegen?

    Mittwoch, 15. März 2017 13:58

Antworten

  • Hallo,

    Das Width-Property des DataGridColumnHeader wurde aus FrameworkElement geerbt. Dieses erwartet einen einfachen double:

    style.Setters.Add(new Setter(WidthProperty, 3d));
    Gruß
    Heiko
    • Als Antwort markiert perlfred Mittwoch, 15. März 2017 15:18
    Mittwoch, 15. März 2017 14:29

Alle Antworten

  • Hallo,

    Das Width-Property des DataGridColumnHeader wurde aus FrameworkElement geerbt. Dieses erwartet einen einfachen double:

    style.Setters.Add(new Setter(WidthProperty, 3d));
    Gruß
    Heiko
    • Als Antwort markiert perlfred Mittwoch, 15. März 2017 15:18
    Mittwoch, 15. März 2017 14:29
  • Hallo Heiko!

    Sieh das Gute liegt so nah :-)  

    Meistens ist es ja umgekehrt, das etwas komplizierter ist, als man es vermutet hatte.

    Danke! für deine logische Ableitung!!!

    Fred.

    Mittwoch, 15. März 2017 15:32