如何将textblock.前台绑定到变量?(WPF C#)

如何将textblock.前台绑定到变量?(WPF C#),c#,wpf,visual-studio-2013,textblock,C#,Wpf,Visual Studio 2013,Textblock,所以我希望修改我的程序,这样我就可以运行一个函数来检查前景色是黑色还是银色。我希望把那些“不可接近”的领域涂成灰色 我的表单当前看起来像: 我希望将“无需维护”字段“灰显”。但是我在数据模板中定义字体前景的绑定元素时遇到了问题 我尝试了一切,从在主窗口代码隐藏中定义IValueConverter类,到定义窗口键资源,但似乎无法在textblock元素本身的数据模板中实现这一点 如有任何建议/帮助,将不胜感激。谢谢 XAML: C#代码隐藏: using System; using Sy

所以我希望修改我的程序,这样我就可以运行一个函数来检查前景色是黑色还是银色。我希望把那些“不可接近”的领域涂成灰色

我的表单当前看起来像:

我希望将“无需维护”字段“灰显”。但是我在数据模板中定义字体前景的绑定元素时遇到了问题

我尝试了一切,从在主窗口代码隐藏中定义IValueConverter类,到定义窗口键资源,但似乎无法在textblock元素本身的数据模板中实现这一点

如有任何建议/帮助,将不胜感激。谢谢

XAML:


C#代码隐藏:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;



namespace SiteMaintenance
{

public partial class MainWindow : Window
{

    /**
     * CLASS VARIABLES
     * */
    private SqlConnection localdbConnection;        // Connection to Site Maintenance DB (LOCAL)
    private System.Data.DataSet allSitesResults;



    // MAIN THREAD
    public MainWindow()
    {
        InitializeComponent();

        // try to open SQL Connection
        try {
            localdbConnection = new SqlConnection(Properties.Settings.Default.localdb);
            localdbConnection.Open();
        } catch(Exception ex) {
           System.Windows.MessageBox.Show("local SQL connection unable to connect");
           return;
        }

        viewHistory_BTN.IsEnabled = false;
        startMaintenance_BTN.IsEnabled = false;
        startMaintenance_BTN.IsDefault = true;
    }

    /**
     * Load dataset into datagrid 
     * LAZY LOADING
     * */
    private void DataGrid_Loaded(object sender, RoutedEventArgs e)
    {
        // init command object
        SqlCommand myCommand = new SqlCommand();
        myCommand.CommandText = "dbo.usp_GetSites";
        myCommand.CommandType = System.Data.CommandType.StoredProcedure;
        myCommand.Connection = localdbConnection;

        // init data adaptor
        SqlDataAdapter sites = new SqlDataAdapter();
        sites.SelectCommand = myCommand;

        //init DataSet
        allSitesResults = new System.Data.DataSet();

        sites.Fill(allSitesResults, "tblSites");

        int tableCount = allSitesResults.Tables.Count;

        System.Data.DataTable test = allSitesResults.Tables[0];

        int rowCount = test.Rows.Count;





    }

    private void sites_DG_CurrentCellChanged(object sender, EventArgs e)
    {
        String siteName = allSitesResults.Tables[0].Rows[0][1].ToString();

    }

    private void allSites_LB_Loaded(object sender, RoutedEventArgs e)
    {
        // init command object
        SqlCommand myCommand = new SqlCommand();
        myCommand.CommandText = "dbo.usp_GetSitesANDCompletedDate";
        myCommand.CommandType = System.Data.CommandType.StoredProcedure;
        myCommand.Connection = localdbConnection;

        // init data adaptor
        SqlDataAdapter sites = new SqlDataAdapter();
        sites.SelectCommand = myCommand;

        //init DataSet
        allSitesResults = new System.Data.DataSet();

        sites.Fill(allSitesResults, "tblSites");

        allSites_LB.ItemsSource = allSitesResults.Tables["tblSites"].DefaultView;

    }


    // do not allow selection of maintenance records that do not exist
    private void allSites_LB_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        // grab the index
        int selectedIndex = allSites_LB.SelectedIndex;
        if (selectedIndex == -1) return;                //WITHOUT THIS CHECK, UN-SELECTION WILL CAUSE LOGIC FAILURE

        System.Data.DataRowView tempData = (System.Data.DataRowView)allSites_LB.Items[allSites_LB.SelectedIndex];

        // grab the completed date field
        String completedDate = tempData["CompletedDate"].ToString();
        String siteMaintID = tempData["SiteMaintID"].ToString();

        // remove selected index if completed date and site Maint ID is null
        if (siteMaintID != "" && completedDate == "")
        {
            startMaintenance_BTN.IsEnabled = true;
        }
        else 
        {
            allSites_LB.SelectedIndex = -1;
            startMaintenance_BTN.IsEnabled = false;
        }

    }


    private String maintRequired(object sender, SelectionChangedEventArgs e)
    {
        int selectedIndex = allSites_LB.SelectedIndex;
        if (selectedIndex < 0) return null;

        System.Data.DataRowView tempData = (System.Data.DataRowView)allSites_LB.Items[allSites_LB.SelectedIndex];

        // grab the completed date field
        String completedDate = tempData["CompletedDate"].ToString();
        String siteMaintID = tempData["SiteMaintID"].ToString();

        if (siteMaintID != "" && completedDate == "")
        {
            return "Maintenance Required";
        }
        else
        {
            return "No Maintenance";
        }
    }

}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;



namespace SiteMaintenance
{

public partial class MainWindow : Window
{

    /**
     * CLASS VARIABLES
     * */
    private SqlConnection localdbConnection;        // Connection to Site Maintenance DB (LOCAL)
    private System.Data.DataSet allSitesResults;



    // MAIN THREAD
    public MainWindow()
    {
        InitializeComponent();

        // try to open SQL Connection
        try {
            localdbConnection = new SqlConnection(Properties.Settings.Default.localdb);
            localdbConnection.Open();
        } catch(Exception ex) {
           System.Windows.MessageBox.Show("local SQL connection unable to connect");
           return;
        }

        viewHistory_BTN.IsEnabled = false;
        startMaintenance_BTN.IsEnabled = false;
        startMaintenance_BTN.IsDefault = true;
    }

    /**
     * Load dataset into datagrid 
     * LAZY LOADING
     * */
    private void DataGrid_Loaded(object sender, RoutedEventArgs e)
    {
        // init command object
        SqlCommand myCommand = new SqlCommand();
        myCommand.CommandText = "dbo.usp_GetSites";
        myCommand.CommandType = System.Data.CommandType.StoredProcedure;
        myCommand.Connection = localdbConnection;

        // init data adaptor
        SqlDataAdapter sites = new SqlDataAdapter();
        sites.SelectCommand = myCommand;

        //init DataSet
        allSitesResults = new System.Data.DataSet();

        sites.Fill(allSitesResults, "tblSites");

        int tableCount = allSitesResults.Tables.Count;

        System.Data.DataTable test = allSitesResults.Tables[0];

        int rowCount = test.Rows.Count;

    }


    private void sites_DG_CurrentCellChanged(object sender, EventArgs e)
    {
        String siteName = allSitesResults.Tables[0].Rows[0][1].ToString();

    }

    private void allSites_LB_Loaded(object sender, RoutedEventArgs e)
    {
        // init command object
        SqlCommand myCommand = new SqlCommand();
        myCommand.CommandText = "dbo.usp_GetSitesANDCompletedDate";
        myCommand.CommandType = System.Data.CommandType.StoredProcedure;
        myCommand.Connection = localdbConnection;

        // init data adaptor
        SqlDataAdapter sites = new SqlDataAdapter();
        sites.SelectCommand = myCommand;

        //init DataSet
        allSitesResults = new System.Data.DataSet();

        sites.Fill(allSitesResults, "tblSites");

        allSites_LB.ItemsSource = allSitesResults.Tables["tblSites"].DefaultView;

    }


    // do not allow selection of maintenance records that do not exist
    private void allSites_LB_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        // grab the index
        int selectedIndex = allSites_LB.SelectedIndex;
        if (selectedIndex == -1) return;                //WITHOUT THIS CHECK, UN-SELECTION WILL CAUSE LOGIC FAILURE

        System.Data.DataRowView tempData = (System.Data.DataRowView)allSites_LB.Items[allSites_LB.SelectedIndex];

        // grab the completed date field
        String completedDate = tempData["CompletedDate"].ToString();
        String siteMaintID = tempData["SiteMaintID"].ToString();

        // remove selected index if completed date and site Maint ID is null
        if (siteMaintID != "" && completedDate == "")
        {
            startMaintenance_BTN.IsEnabled = true;
        }
        else 
        {
            allSites_LB.SelectedIndex = -1;
            startMaintenance_BTN.IsEnabled = false;
        }

    }


    private String maintRequired(object sender, SelectionChangedEventArgs e)
    {
        int selectedIndex = allSites_LB.SelectedIndex;
        if (selectedIndex < 0) return null;

        System.Data.DataRowView tempData = (System.Data.DataRowView)allSites_LB.Items[allSites_LB.SelectedIndex];

        // grab the completed date field
        String completedDate = tempData["CompletedDate"].ToString();
        String siteMaintID = tempData["SiteMaintID"].ToString();

        if (siteMaintID != "" && completedDate == "")
        {
            return "Maintenance Required";
        }
        else
        {
            return "No Maintenance";
        }
    }

}

public class MaintenenceColorConverter : IValueConverter
{

    public Color NormalColor { get; set; }
    public Color NoMaintenanceRequiredColor { get; set; }

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

        if (value.ToString() == "No Maintenance Required") return NoMaintenanceRequiredColor.ToString();

        return NormalColor.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Data;
使用System.Windows.Documents;
使用System.Windows.Input;
使用System.Windows.Media;
使用System.Windows.Media.Imaging;
使用System.Windows.Navigation;
使用System.Windows.Shapes;
使用System.Data.SqlClient;
命名空间站点维护
{
公共部分类主窗口:窗口
{
/**
*类变量
* */
专用SqlConnection localdbConnection;//到站点维护数据库的连接(本地)
private System.Data.DataSet所有站点结果;
//主线
公共主窗口()
{
初始化组件();
//尝试打开SQL连接
试一试{
localdbConnection=newsqlconnection(Properties.Settings.Default.localdb);
localdbConnection.Open();
}捕获(例外情况除外){
System.Windows.MessageBox.Show(“本地SQL连接无法连接”);
返回;
}
viewHistory_BTN.IsEnabled=false;
startMaintenance_BTN.IsEnabled=错误;
startMaintenance_BTN.IsDefault=真;
}
/**
*将数据集加载到数据网格中
*延迟加载
* */
已加载私有void数据网格(对象发送方,RoutedEventArgs e)
{
//初始化命令对象
SqlCommand myCommand=新的SqlCommand();
myCommand.CommandText=“dbo.usp_GetSites”;
myCommand.CommandType=System.Data.CommandType.StoredProcess;
myCommand.Connection=localdbConnection;
//初始化数据适配器
SqlDataAdapter站点=新的SqlDataAdapter();
sites.SelectCommand=myCommand;
//初始化数据集
allSitesResults=new System.Data.DataSet();
现场填充(所有现场结果,“TBLSite”);
int tableCount=allSitesResults.Tables.Count;
System.Data.DataTable test=所有站点结果表[0];
int rowCount=test.Rows.Count;
}
私有无效站点\u DG\u CurrentCellChanged(对象发送方,事件参数e)
{
字符串siteName=allSitesResults.Tables[0]。行[0][1]。ToString();
}
私有无效所有站点已加载(对象发送方、路由目标方)
{
//初始化命令对象
SqlCommand myCommand=新的SqlCommand();
myCommand.CommandText=“dbo.usp_getsite和completedDate”;
myCommand.CommandType=System.Data.CommandType.StoredProcess;
myCommand.Connection=localdbConnection;
//初始化数据适配器
SqlDataAdapter站点=新的SqlDataAdapter();
sites.SelectCommand=myCommand;
//初始化数据集
allSitesResults=new System.Data.DataSet();
现场填充(所有现场结果,“TBLSite”);
allSites_LB.ItemsSource=allSitesResults.Tables[“tblSites”]。默认视图;
}
//不允许选择不存在的维护记录
private void allSites\u LB\u SelectionChanged(对象发送者,SelectionChangedEventArgs e)
{
//抓取索引
int selectedIndex=所有站点\u LB.selectedIndex;
如果(selectedIndex==-1)返回;//如果没有此检查,取消选择将导致逻辑失败
System.Data.DataRowView tempData=(System.Data.DataRowView)所有站点项[所有站点选择的索引];
//抓取完成日期字段
字符串completedDate=tempData[“completedDate”].ToString();
字符串siteMaintID=tempData[“siteMaintID”].ToString();
//如果完成日期和站点维护ID为空,则删除所选索引
如果(siteMaintID!=“”&completedDate=“”)
{
startMaintenance_BTN.IsEnabled=真;
}
其他的
{
所有站点选择的索引=-1;
startMaintenance_BTN.IsEnabled=错误;
}
}
需要维护专用字符串(对象发送方,选择ChangedEventArgs e)
{
int selectedIndex=所有站点\u LB.selectedIndex;
if(selectedIndex<0)返回null;
System.Data.DataRowView tempData=(System.Data.DataRowView)所有站点项[所有站点选择的索引];
//抓取完成日期字段
字符串completedDate=tempData[“completedDate”].ToString();
字符串siteMaintID=tempData[“siteMaintID”].ToString();
如果(siteMaintID!=“”&completedDate=“”)
{
返回“需要维护”;
}
其他的
{
返回“无维护”;
}
}
}

}

比您要求的要多,但这是来自某些现有代码

<Style TargetType="ListViewItem">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=IsMaintenance}" Value="True">
            <Setter Property="Background" Value="Gainsboro"  />
            <Setter Property="Foreground" Value="Red" />
        </DataTrigger>
        <Trigger Property="IsSelected" Value="True" >
            <Setter Property="FontWeight" Value="Bold" />
        </Trigger>
    </Style.Triggers>
</Style>

通常有两种很好的方法供您选择
<Style TargetType="TextBlock">
    <Setter Property="Foreground" Value="Black" /> <!-- default value -->
    <Style.Triggers>
        <DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Self}" Value="No Maintenance Required">
            <Setter Property="Foreground" Value="Gray" /> <!-- special behavior -->
        </DataTrigger>
    </Style.Triggers>
</Style>
public class MaintenaceColorConverter : IValueConverter
{

    public Color NormalColor { get; set; }
    public Color NoMaintenanceRequiredColor { get; set; }

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value.ToString() == "No Maintenance Required")
            return NoMaintenanceRequiredColor;

        return NormalColor;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
<Window.Resources>
    <local:MaintenaceColorConverter x:Key="myColorConverter" NormalColor="Black" NoMaintenanceRequiredColor="Gray" />
</Window.Resources>
<TextBlock Text="{Binding MaintStatus}" Foreground="{Binding MaintStatus, Converter={StaticResource myColorConverter}}" />
XAML:

   <Window x:Class="SiteMaintenance.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:SiteMaintenance"
        Title="MainWindow" 
        Height="600" 
        Width="1000">
    <Window.Resources>
        <local:MaintenenceColorConverter x:Key="MyColorConverter" NormalColor="Black" NoMaintenanceRequiredColor="Gray" />
    </Window.Resources>

    <Grid Margin="0,0,2,0">

        <ListBox x:Name="allSites_LB" 
                 HorizontalAlignment="Left" 
                 Height="400" 
                 Margin="20,60,0,0" 
                 VerticalAlignment="Top" 
                 Width="945"
                 Loaded="allSites_LB_Loaded" 
                 BorderThickness="1" SelectionChanged="allSites_LB_SelectionChanged"
                 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                 >
            <ListBox.ItemTemplate >
                <DataTemplate >
                    <Border BorderBrush="Black" BorderThickness="0,0,0,1" Margin="-20,1,0,1" Padding="0,5,0,5" >
                        <Grid Margin="75,3" >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="200" />
                                <ColumnDefinition Width="400" />
                                <ColumnDefinition Width="345" />
                            </Grid.ColumnDefinitions>
                            <TextBlock Text="{Binding SiteNo}" Grid.Column="0" FontSize="16" Foreground="{Binding MaintStatus, Converter={StaticResource MyColorConverter}}"  />
                            <TextBlock Text="{Binding Address}" Grid.Column="1" FontSize="16" Margin="50,1" Foreground="{Binding MaintStatus, Converter={StaticResource MyColorConverter}}"  />
                            <TextBlock Text="{Binding MaintStatus}" Grid.Column="2" FontSize="16" Foreground="{Binding MaintStatus, Converter={StaticResource MyColorConverter}}" />
                        </Grid>
                    </Border>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <Button x:Name="viewHistory_BTN" 
                Content="View History" 
                HorizontalAlignment="Left" 
                Height="52" 
                Margin="20,496,0,0" 
                VerticalAlignment="Top" 
                Width="172" FontSize="20"
                />

        <Button x:Name="startMaintenance_BTN" 
                Content="Start Maintenance"
                HorizontalAlignment="Left" 
                Height="52" 
                Margin="793,496,0,0" 
                VerticalAlignment="Top" 
                Width="172" FontSize="20"
                />
        <TextBox x:Name="Site_Address" 
                 HorizontalAlignment="Left" 
                 Height="21" 
                 Margin="51,39,0,0" 
                 TextWrapping="Wrap" 
                 Text="Site Number" 
                 VerticalAlignment="Top" 
                 Width="75" 
                 BorderBrush="White" 
                 IsReadOnly="True" 
                 IsEnabled="False"

                 />
        <TextBox x:Name="Address_Title" 
                 HorizontalAlignment="Left" 
                 Height="21" 
                 Margin="380,34,0,0" 
                 TextWrapping="Wrap" 
                 Text="Address" 
                 VerticalAlignment="Top" 
                 Width="75" 
                 BorderBrush="White"
                 IsReadOnly="True" 
                 IsEnabled="False"

                 />
        <TextBox x:Name="maint_Title" 
                 HorizontalAlignment="Left" 
                 Height="21" 
                 Margin="699,34,0,0" 
                 TextWrapping="Wrap" 
                 Text="Maintenance Record" 
                 VerticalAlignment="Top" 
                 Width="117" 
                 BorderBrush="White" 
                 IsReadOnly="True" 
                 IsEnabled="False"
                 />

    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;



namespace SiteMaintenance
{

public partial class MainWindow : Window
{

    /**
     * CLASS VARIABLES
     * */
    private SqlConnection localdbConnection;        // Connection to Site Maintenance DB (LOCAL)
    private System.Data.DataSet allSitesResults;



    // MAIN THREAD
    public MainWindow()
    {
        InitializeComponent();

        // try to open SQL Connection
        try {
            localdbConnection = new SqlConnection(Properties.Settings.Default.localdb);
            localdbConnection.Open();
        } catch(Exception ex) {
           System.Windows.MessageBox.Show("local SQL connection unable to connect");
           return;
        }

        viewHistory_BTN.IsEnabled = false;
        startMaintenance_BTN.IsEnabled = false;
        startMaintenance_BTN.IsDefault = true;
    }

    /**
     * Load dataset into datagrid 
     * LAZY LOADING
     * */
    private void DataGrid_Loaded(object sender, RoutedEventArgs e)
    {
        // init command object
        SqlCommand myCommand = new SqlCommand();
        myCommand.CommandText = "dbo.usp_GetSites";
        myCommand.CommandType = System.Data.CommandType.StoredProcedure;
        myCommand.Connection = localdbConnection;

        // init data adaptor
        SqlDataAdapter sites = new SqlDataAdapter();
        sites.SelectCommand = myCommand;

        //init DataSet
        allSitesResults = new System.Data.DataSet();

        sites.Fill(allSitesResults, "tblSites");

        int tableCount = allSitesResults.Tables.Count;

        System.Data.DataTable test = allSitesResults.Tables[0];

        int rowCount = test.Rows.Count;

    }


    private void sites_DG_CurrentCellChanged(object sender, EventArgs e)
    {
        String siteName = allSitesResults.Tables[0].Rows[0][1].ToString();

    }

    private void allSites_LB_Loaded(object sender, RoutedEventArgs e)
    {
        // init command object
        SqlCommand myCommand = new SqlCommand();
        myCommand.CommandText = "dbo.usp_GetSitesANDCompletedDate";
        myCommand.CommandType = System.Data.CommandType.StoredProcedure;
        myCommand.Connection = localdbConnection;

        // init data adaptor
        SqlDataAdapter sites = new SqlDataAdapter();
        sites.SelectCommand = myCommand;

        //init DataSet
        allSitesResults = new System.Data.DataSet();

        sites.Fill(allSitesResults, "tblSites");

        allSites_LB.ItemsSource = allSitesResults.Tables["tblSites"].DefaultView;

    }


    // do not allow selection of maintenance records that do not exist
    private void allSites_LB_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        // grab the index
        int selectedIndex = allSites_LB.SelectedIndex;
        if (selectedIndex == -1) return;                //WITHOUT THIS CHECK, UN-SELECTION WILL CAUSE LOGIC FAILURE

        System.Data.DataRowView tempData = (System.Data.DataRowView)allSites_LB.Items[allSites_LB.SelectedIndex];

        // grab the completed date field
        String completedDate = tempData["CompletedDate"].ToString();
        String siteMaintID = tempData["SiteMaintID"].ToString();

        // remove selected index if completed date and site Maint ID is null
        if (siteMaintID != "" && completedDate == "")
        {
            startMaintenance_BTN.IsEnabled = true;
        }
        else 
        {
            allSites_LB.SelectedIndex = -1;
            startMaintenance_BTN.IsEnabled = false;
        }

    }


    private String maintRequired(object sender, SelectionChangedEventArgs e)
    {
        int selectedIndex = allSites_LB.SelectedIndex;
        if (selectedIndex < 0) return null;

        System.Data.DataRowView tempData = (System.Data.DataRowView)allSites_LB.Items[allSites_LB.SelectedIndex];

        // grab the completed date field
        String completedDate = tempData["CompletedDate"].ToString();
        String siteMaintID = tempData["SiteMaintID"].ToString();

        if (siteMaintID != "" && completedDate == "")
        {
            return "Maintenance Required";
        }
        else
        {
            return "No Maintenance";
        }
    }

}

public class MaintenenceColorConverter : IValueConverter
{

    public Color NormalColor { get; set; }
    public Color NoMaintenanceRequiredColor { get; set; }

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

        if (value.ToString() == "No Maintenance Required") return NoMaintenanceRequiredColor.ToString();

        return NormalColor.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

}