У меня есть DataGrid
, который автоматически генерирует свои столбцы с кодом DataTable
. Мне нужно изменить цвет фона строки, если столбец X имеет значение FALSE
или что-то еще. Могу ли я это сделать с AutoGeneratingColumn="OnAutoGeneratingColumn"
eventargs? Если нет, то как я могу изменить стиль строки, используя, возможно, DataTriggers
доступ к значению столбца и повлиять на цвет фона строки?DataTriggers на основе имени столбца и его значения в WPF
EDIT 1: Прямой вопрос: как изменить цвет фона строки на основе значения в каком-то столбце?
EDIT 2: основе Генерирование Columns событие я могу сделать это:
EDIT 3: кодирование
public static void OnAutoGeneratingColumn(object sender, System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e)
{
try {
if (e.PropertyType == typeof(System.DateTime) && e.Column.Header.ToString() != "Data de Registo")
(e.Column as System.Windows.Controls.DataGridTextColumn).Binding.StringFormat = "dd/MM/yyyy";
if (e.PropertyType == typeof(System.DateTime) && e.Column.Header.ToString() == "Data de Registo")
(e.Column as System.Windows.Controls.DataGridTextColumn).Binding.StringFormat = "dd/MM/yyyy HH:mm:ss";
if (e.Column.Header.ToString() == "FT")
{
StringReader stringReader = new StringReader("<Style xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\""
+ " TargetType=\"{x:Type DataGridCell}\">"
+ " <Setter Property=\"Background\" Value=\"Red\"/>"
+ " </Style>");
XmlReader xmlReader = XmlReader.Create(stringReader);
Style style = (Style)System.Windows.Markup.XamlReader.Load(xmlReader);
e.Column.CellStyle = style;
}
}
catch (Exception) { }
}
Так что я изменил цвет фона столбца (его клетки), но то, что я хочу, проверяя его значение для каждой строки и делайте его красным, если значение X или зеленый, если значение Y.
Нет ... совсем нет. – int3
извините, удалил ... это не планировалось быть здесь :-) – Fruchtzwerg