- 我在共享驱动器中有一个包含 xml 文件的文件夹。
- 该文件被合并为单个数据以进行实时监控
- FilesystemWatcher 监听最后修改时间并将文件加载到主数据表或合并它。
- 应出现的 datagridview 行单元应显示基于国家/地区的颜色。
- 除了datagridview中的颜色部分之外,我在合并文件和做其他事情方面没有问题。
- 问题是下面的代码在加载文件 datagridveiw 行时会改变单元格的颜色,但是当它完成加载时,只有最后一个 datagridview 行显示彩色单元格。
- 最重要的是,如果用户对 datagridview 列进行排序,所有单元格都会丢失其颜色格式,包括最后一个
- 谁能告诉我我做错了什么或如何解决?
private void Read_Summary_XML()
{
String[] country_array = new[] { "US", "Russia", "United Kingdom", "Cananda" };
Color[] color_array = new Color[] { Color.FromArgb(53, 255, 51), Color.FromArgb(51, 204, 51), Color.FromArgb(255, 153, 0), Color.FromArgb(255, 153, 0) };
List<String> direcotries_list = new List<String>(Directory.EnumerateDirectories(log_folder));
foreach (String directory in direcotries_list)
{
String xml_file = Path.Combine(directory, "summary.xml");
using (XmlReader xml_reader = new XmlNodeReader(Read_XML_File(xml_file)))
{
DataTable dt = new DataTable();
dt = summary_dt.Clone();
dt.ReadXml(xml_reader);
summary_dt.Merge(dt);
String country = dt.Rows[0]["country_clm"].ToString();
DataGridViewRow row = (from dgv_row in summary_dgv.Rows.Cast<DataGridViewRow>()
where dgv_row.Cells["country_clm"].Value.ToString().Equals(country)
select dgv_row).First();
Int32 ri = row.Index;
row.Cells["country_clm"].Style.BackColor = color_array[Array.IndexOf(country_array, country)];
}
color_array = null; country_array = null;
}
}