Я создаю из c # Data-grid, которая содержит Data-Table и заполняет ее данными, затем у меня есть кнопка обновления, чтобы при щелчке по ней я хотел видеть ячейки, в которых их значение изменилось в другом цвете(красный например).Я довольно новичок в WPF, поэтому я не совсем понимаю, как это сделать из XML, и я создаю таблицы из кода, поэтому я тоже пытаюсь сделать это из кода.все перепробовал и фон ячейки не меняется.
Спасибо всем, кто постарается помочь:)
пример кода для создания DataTable:
string TID =selectedTab.Header.ToString().Split('~')[1]; // (TableID, Lvl)
List<Tuple<string,string>> FieldList = API.getFieldsByTableID(TID); // {(Field_name,size in bits),...}
DataGrid dg = new DataGrid();
DataTable dt = new DataTable();
string[] TableLevel = splitTID(TID); //TableLevel[0]=Table ;TableLevel[1]=Level;
string TableDump = API.GetRegs(TableLevel[0], TableLevel[1]);// Getting debug dump from simics
#endregion
#region *Fields_row*
foreach (var item in FieldList) // First line ,name of fields.
{
dc = new DataColumn(item.Item1, typeof(string));
dt.Columns.Add(dc);
}
#endregion
TableDump = TableDump.Split(':')[1]; // split to get just the dump
int x = 0;
int DumpLen = TableDump.Length; // dump length
int EntrySize = int.Parse(API.GetEntrySize(TID)); // return entry size
int NumOfBytes = round_bits_2_chars_amount(EntrySize);
int count = 0;
while (x < DumpLen)
{
count++;
String str_Entry = BE_to_LE(TableDump.Substring(x, NumOfBytes));
ulong Entry = ulong.Parse(str_Entry, System.Globalization.NumberStyles.HexNumber);
DataRow dr = dt.NewRow();
int row = 0;
dr[row++] = count;
foreach (var item in FieldList)
{
int FieldLen = int.Parse(item.Item2);
ulong Mask =(ulong) ((1 << FieldLen) - 1);
ulong Value = Entry & Mask;
Entry = Entry >> FieldLen;
if (Properties.Settings.Default.IsHexadecimal)
{
dr[row] = "0x" + Value.ToString("X");
}
else
{
dr[row] =Value.ToString();
}
row += 1;
/* if (int.Parse(item.Item2) > DumpLen - x)
{
x = DumpLen + 1;
break;
}
string FieldDump =TableDump.Substring(x,int.Parse(item.Item2));
x +=int.Parse(item.Item2);
dr[row] = long.Parse(FieldDump,System.Globalization.NumberStyles.HexNumber);
row +=1;*/
}
dt.Rows.Add(dr);
x += EntrySize;
}
dg.ItemsSource = new DataView(dt);
selectedTab.Content = dg;
}
}