Ein FilesystemWatcher überwacht den Zeitpunkt der letzten Änderung und lädt die Datei in die Hauptdatentabelle oder führt sie zusammen. Die Zeilenzelle der Datagridview sollte erscheinen und die Farbe des Basislandes anzeigen.
Ich habe kein Problem damit, die Datei zusammenzufassen und andere Dinge zu tun, außer dem Farbteil in der Datagridview.
Das Problem ist, dass der folgende Code beim Laden der Datagridview-Zeilen der Datei die Farbe der Zelle ändert, aber wenn der Ladevorgang abgeschlossen ist, zeigt nur die letzte Datagridview-Zeile die farbige Zelle an.
Oben noch, wenn Der Benutzer sortiert die Datagridview-Spalte, alle Zellen verlieren ihr Farbformat, einschließlich der letzten.
Kann mir jemand sagen, was ich falsch mache oder wie ich das Problem beheben kann?
Code: Select all
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 direcotries_list = new List(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()
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;
}
}
Mobile version