WPF-Bindung: Legen Sie die Textfarbe des Listbox-Elements auf der Grundlage der Eigenschaft fest

8

Ich bin mir sicher, dass dies wahrscheinlich etwas Grundlegendes in WPF ist, aber ich bin neu in der XAML-Syntax Ich versuche, meinen Kopf darum zu wickeln.

Das Setup

Ich habe eine LogItem Type - nur ein POCO:

%Vor%

und eine Liste von LogItem in meinem ViewModel:

%Vor%

Mein Ansichtsmodell ist an die Ansicht gebunden, sodass ich Folgendes tun kann:

%Vor%

(Natürlich muss ich immer noch den Display Text binden, etc.)

Die Frage

Wenn ich eine Eigenschaft Message und MessageColor in LogItems habe, welche ist die korrekte XAML-Syntax, um die Farbe des Elementtextes an die von mir angegebene Farbe zu binden?

    
SeanKilleen 24.09.2013, 12:52
quelle

1 Antwort

21
%Vor%

TextBlock Foreground erwartet eine Brush nicht eine Color . Wie viele Dinge in WPF gibt es viele Möglichkeiten, dies zu lösen. Hier ist ein Paar:

  1. Ändern Sie die Eigenschaft MessageColor in Ihrem ViewModel in Brush

    %Vor%
  2. Erstellen Sie ein SolidColorBrush und binden Sie es an Ihre Farbe

    %Vor%
  3. Erstellen Sie ein ColorToBrushConverter

    %Vor%

In xaml erstellen Sie den Konverter als statische Ressource

%Vor%

verwende es in der Bindung

%Vor%

Viel Glück

    
Omri Btian 24.09.2013, 12:57
quelle

Tags und Links