リストボックスで代替行の色が見つかり、Textblockの前景のバインドを使用しました。文字列と色を保持するクラスを作成する必要があることに気づきました。そのクラスをObservableCollectionに入れ、ObservableCollectionにバインドします。
私の新しいクラス:
public class DisplayData
{
public string _string { get; set; }
public System.Windows.Media.Brush _color { get; set; }
public int _fontSize { get; set; }
}
XAML:
<ListBox x:Name="Progress_Window" ItemsSource="{Binding pb._displayString}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding _string}" Foreground="{Binding _color}" FontSize="{Binding _fontSize}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ここで、pbはVM内のローカルクラス変数です。
モデルのコード:
public ObservableCollection<DisplayData> _displayString { get; set; }
...
_displayString = new ObservableCollection<DisplayData>();
string _error = "Error Opening COM Port";
_displayString.Add(new DisplayData { _string = _error, _color = System.Windows.Media.Brushes.Red, _fontSize = 20 });