datagrid datatable绑定并设置特定单元格的工具提示和背景颜色

时间:2018-10-22 22:03:43

标签: wpf binding datagrid

我将一个DataGrid绑定到一个DataTable,并且autogeneratecolumns = true,因为该数据表可以是excel文件中的任何内容。 但是,现在我想用红色绘制特定的单元格并添加一个工具提示,这是一条错误消息,当从Excel加载数据时,该错误消息可能会出现在验证过程中。

我的目标是将所有有错误的单元格涂成红色。错误在列表中,其中CError可能具有{row = 4,col = 6,Error =“日期错误”}之类的数据,因此某些单元格将出现错误,我想用红色绘制这些单元格并附加到它们工具提示中的错误,但我找不到方法。我的DataGrid的定义如下:

            <DataGrid x:Name="grdExcel" Grid.Row="1" Padding="5,15,5,10" IsReadOnly="True" AutoGenerateColumns="True"
                      ItemsSource="{Binding  MyDataTableFromExcel,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
                      VerticalAlignment="Center" >

在Viewmodel中,我得到了“ LoadData()”方法,该方法将在按下某些按钮时运行,该函数是:

    public List<CError> ErrorInSheet {get;set;}

     public void LoadData()
    {
        Sheets= GetSheetsFromExcel(PathExcel);
        SelectedSheet= Sheets.FirstOrDefault();
        MyDataTableFromExcel= LoadDataFromSheet(PathExcel, SelectedSheet);
        ErrorInSheet=ValidateData(MyDataTableFromExcel);

    }

和CError类是这样的:

    public class CErrorExcel
{
    public int row { get; set; }
    public int col { get; set; }
    public string Error { get; set; }
}

我的问题是,在验证过程之后,如何仅将数据网格中有错误的单元格涂成红色,这些错误将在ErrorInSheet集合中

我不知道是否因为我做错了什么方法而无法找到CErrorExcel类中指示的单元格的画法

预先感谢

1 个答案:

答案 0 :(得分:0)

我确实找到了做我以前问过的方法,也许一段时间后会对某人有用 我确实使用viewmodel的方法从Excel加载了数据,并且在该过程中创建了一个错误集合,在我的scrollviwer加载的事件处理程序中,我将该调用放置到了dataGrid的绘画特定单元格的过程中,并设置了工具提示。 这是代码

EXT:your_extension_key/Resources/Private/Partials/

工作真的很好,希望这对某人有帮助。

再见