Wpf 如何将颜色绑定到我的XAML中
我有这个视图模型:Wpf 如何将颜色绑定到我的XAML中,wpf,listview,datagridviewcolumn,Wpf,Listview,Datagridviewcolumn,我有这个视图模型: public class MyData { public string Status; public StatusMsg StatusMessage; private Brush _statusBrushes; public Brush StatusBrushes { get { switch (StatusMessage) {
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
?我建议创建一个能够将枚举值转换为适当颜色的绑定,然后您的绑定看起来像:
<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的教程:我们这里缺少很多代码。
状态
属性位于何处?您可以发布视图模型和模型代码吗?