Announcement

Collapse
No announcement yet.

[WPF] Fontstyle per Binding

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [WPF] Fontstyle per Binding

    Moin,

    Ich habe mir ein kleines Tool erstellt, dass mir alle User eines Terminal-Servers auflistet.
    Ich möchte, dass der Benutzername bei aktiver Sitzung Bold und bei getrennter Sitzung Italic ist.

    Jeder Datensatz basiert auf einer Klassendefinition von SessionModel:
    Code:
        public class SessionModel
        {
            public int SessionId { get; set; }
            public string SessionName { get; set; }
            public string UserName { get; set; }
            public string SessionStatus { get; set; }
            public string IdleTime { get; set; }
            public string ServerName { get; set; }
            public bool IsAdminSession { get; set; }
            public DateTime LogonTime { get; set; }
            public bool IsActive { get; set; }
            public FontStyle TextStyle { get; set; }
            public System.Windows.Visibility IsVisible { get; set; }
        }
    Die Daten lasse ich mir über quser zurückgeben und setze pro Sitzung eine Row vom Objekt SessionModel in das DataGrid:
    Code:
    SessionData.Add(
        new SessionModel
        {
            ServerName = "SRV-02A" // currently static
            , UserName = user
            , SessionName = session_name
            , SessionId = Convert.ToInt32(session_id)
            , SessionStatus = SessionStatusTranslation[status]
            , LogonTime = DateTime.Parse(logon)
            , IsAdminSession = user.Contains("admin")
            , IdleTime = idle
            , IsActive = SessionStatusTranslation[status] == "Aktiv"
            , TextStyle = SessionStatusTranslation[status] == "Aktiv" ? System.Drawing.FontStyle.Bold : System.Drawing.FontStyle.Italic
            , IsVisible = SessionStatusTranslation[status] == "Aktiv" ? Visibility.Visible : Visibility.Hidden
        }
    );
    Unten zu sehen, die vorletzte Zeile, dort entscheide ich über den FontStyle.
    Ich binde nun den Textblock des Benutzers an diesen FontStyle:
    Code:
    <TextBlock Text="{Binding UserName}" Padding="5" FontSize="18" FontStyle="{Binding TextStyle}"/>
    Die Schrift bleibt allerdings Standard, wie alle anderen Zeilen auch.

    Ich habe mir Haltepunkte gesetzt und mir die Werte in der Überwachung anzeigen lassen, da ist alles richtig, wie ich es gerne hätte.
    Funktioniert hier das Binding nicht? Denn wenn ich direkt Italic oder Bold eintrage im XAML, passt es natürlich.

    Ähnlich habe ich das ja für die Visiblilty der Tooltips gemacht ( letzte Zeile ).
    Hier funktioniert es allerdings richtig, die Tooltips werden nur angezeigt, wenn die Sitzung aktiv ist.

    Vielleicht hat ja jemand einen Hinweis für mich, warum das mit dem FontStyle nicht läuft?


    Danke und Gruß
    Arne


    EDIT: Zur Info, da es als CrossPosting bewertet werden könnte.
    Da einige Tage keine Teilnahme stattfand, habe ich mich entschlossen, in einem weiteren Forum zu fragen.
    Zuletzt editiert von Arne Drews; 06.07.2020, 17:55. Reason: Hinweis auf evtl. CrossPosting zugefügt
    PHP rocks!
    Eine Initiative der PHP Community
Working...
X