Datagridview aktualisiert nur die letzte ZeileC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Datagridview aktualisiert nur die letzte Zeile

Post by Anonymous »

Ich habe einen Ordner im freigegebenen Laufwerk, der XML-Dateien enthält. Die Datei wird zur Live-Überwachung in einzelne Daten zusammengefasst.
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;
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post