Как связать цвет в мой XAML
У меня есть эта модель:
public class MyData
{
public string Status;
public StatusMsg StatusMessage;
private Brush _statusBrushes;
public Brush StatusBrushes
{
get
{
switch (StatusMessage)
{
case StatusMsg.Cancel:
return Brushes.Red;
case StatusMsg.InProcess:
return Brushes.Blue;
case StatusMsg.Done:
return Brushes.Green;
default:
return Brushes.Green;
}
}
set { _statusBrushes = value; }
}
public enum StatusMsg
{
Cancel,
Done,
InProcess,
}
}
Теперь у меня есть это GridViewColumn
:
<GridViewColumn Width="180" Header="Status">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock x:Name="Txt" Text="{Binding Status}" Foreground="Yellow" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Так как вы можете видеть это GridViewColumn
цвет желтый, и я хочу изменить его в соответствии с моим StatusMsg
(мое перечисление), поэтому мой вопрос, как связать мой цвет в мой XAML
?
1 ответ
Я бы порекомендовал создать IValueConverter
который может преобразовать ваше значение перечисления в соответствующий цвет, и тогда ваша привязка будет выглядеть примерно так:
<GridViewColumn Width="180" Header="Status">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock x:Name="Txt" Text="{Binding Status}"
Foreground="{Binding Path=StatusColor, Converter={StaticResource MyStatusColorConverter}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Вам, конечно, также потребуется создать ресурс, вот учебник, в котором появился быстрый поиск по bing: http://wpftutorial.net/ValueConverters.html