Jetzt habe ich ein Problem mit meinem DataTrigger, den ich dynamisch erstellt habe. Laut Code scheint es in Ordnung zu sein, aber es funktioniert nicht. Der DataTrigger überprüft, ob der Wert der Spalte „Spec_X“ oder „Spec_Y“ wahr oder falsch ist. Wenn True, ist der Vordergrund des TextBlocks „FireBrick“.
Hier ist mein Code:
Code: Select all
Binding Binding_X = new Binding();
Binding_X.Path = new PropertyPath("X" + int.Parse(Test_Num["Test_Num"].ToString()));
Binding Binding_Y = new Binding();
Binding_Y.Path = new PropertyPath("Y" + int.Parse(Test_Num["Test_Num"].ToString()));
DataGridTextColumn Column_X = new DataGridTextColumn
{
Header = "X",
Binding = Binding_X,
Width = 50,
SortMemberPath = "X" + int.Parse(Test_Num["Test_Num"].ToString())
};
Style columnStyle_X = new Style(typeof(TextBlock));
DataTrigger Trigger_X = new DataTrigger();
Trigger_X.Binding = new Binding("Spec_X" + int.Parse(Test_Num["Test_Num"].ToString()));
Trigger_X.Value = True;
Trigger_X.Setters.Add(
new Setter(
TextBlock.ForegroundProperty,
new SolidColorBrush(Colors.Firebrick)));
columnStyle_X.Triggers.Add(Trigger_X);
Column_X.ElementStyle = columnStyle_X;
DataGridTextColumn Column_Y = new DataGridTextColumn
{
Header = "Y",
Binding = Binding_Y,
Width = 50,
SortMemberPath = "Y" + int.Parse(Test_Num["Test_Num"].ToString())
};
Style columnStyle_Y = new Style(typeof(TextBlock));
DataTrigger Trigger_Y = new DataTrigger();
Trigger_Y.Binding = new Binding("Spec_Y" + int.Parse(Test_Num["Test_Num"].ToString()));
Trigger_Y.Value = True;
Trigger_Y.Setters.Add(
new Setter(
TextBlock.ForegroundProperty,
new SolidColorBrush(Colors.Firebrick)));
columnStyle_Y.Triggers.Add(Trigger_Y);
Column_Y.ElementStyle = columnStyle_Y;
Code: Select all
foreach (DataRow dt in main.Table_performance_AVG.Rows)
{
DataRow row = List_Table_Performance_Data[i].NewRow();
row["Recipe"] = list_recipe.Any() == false ? dt["Recipe_Name"].ToString() : "";
row["Date"] = ((DateTime)dt["Date"]).ToString("M/d/yyyy HH:mm:ss").ToString();
row["X" + dt["Test_Num"].ToString()] = dt[i + count].ToString() == "-99999" ? null : (double?)dt[i + count];
row["Y" + dt["Test_Num"].ToString()] = dt[i + 1 + count].ToString() == "-99999" ? null : (double?)dt[i + 1 + count];
row["Spec_X" + dt["Test_Num"].ToString()] = True;
row["Spec_Y" + dt["Test_Num"].ToString()] = True;
Table_Performance_Data.Rows.Add(row);
}
DataGrid.ItemsSource = Table_Performance_Data.DefaultView;
hier ist mein DataGrid:
Code: Select all