2015-12-15 33 views
0

我有這樣的視圖模型:如何結合顏色到我的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

+0

我們在這裏錯過了很多代碼。 「Status」物業位於哪裏?你能發佈你的視圖模型和模型代碼嗎? –

回答

0

我建議創建一個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