Я извлекаю данные из базы данных и размещаю содержимое в DataGrid WPF;C# WPF DataGrid Изменение FontColour строки на основе значения
пространство имен ContractsExcel { общественный частичный класс UserSelection: Страница { общественный UserSelection() { InitializeComponent(); dataGrid.CanUserAddRows = false; string username = Environment.UserName; userImage.Source = new BitmapImage (новый Uri (@ "C: \ Users \ DanD \ Desktop \" + имя пользователя + ". Jpg")); }
private void FillDataGrid(object sender, RoutedEventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["dbfString"].ConnectionString;
using (OleDbConnection dbfCon = new OleDbConnection(constr))
{
try
{
dbfCon.Open();
DataTable dTable = new DataTable();
string dbfQuery = "SELECT em_pplid, em_name, em_netname FROM employs WHERE em_netname NOT LIKE ''";
OleDbCommand MyQuery = new OleDbCommand(dbfQuery, dbfCon);
OleDbDataAdapter DA = new OleDbDataAdapter(MyQuery);
DA.Fill(dTable);
dataGrid.ItemsSource = dTable.AsDataView();
}
catch (OleDbException)
{
throw;
}
}
}
}
}
Что я хотел бы сделать, это изменить цвет шрифта всей строки на основе содержимого ячейки строки, например, если заказ заветной изменить цвет шрифта строка - красная.
Хотя есть несколько вопросов по этой теме, существующих уже я не мог найти ничего конкретного. Должно ли это быть сделано через XAML или C# и как я буду заниматься реализацией этой функции?
Обновленный код с XAML;
<DataGrid x:Name="dataGrid" Margin="0,0,10,0" Grid.ColumnSpan="3" ColumnWidth="*" FontSize="18.667">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding em_netname}" Value='Chris'>
<Setter Property="Foreground" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
Код для заполнения DataContext в C#;
пространство имен ContractsExcel { общественный частичный класс UserSelection: Страница { общественный UserSelection() { InitializeComponent(); dataGrid.CanUserAddRows = false; string username = Environment.UserName; userImage.Source = new BitmapImage (новый Uri (@ "C: \ Users \ DanD \ Desktop \" + имя пользователя + ". Jpg")); }
private void FillDataGrid(object sender, RoutedEventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["dbfString"].ConnectionString;
using (OleDbConnection dbfCon = new OleDbConnection(constr))
{
try
{
dbfCon.Open();
DataTable dTable = new DataTable();
string dbfQuery = "SELECT em_pplid, em_name, em_netname FROM employs WHERE em_netname NOT LIKE ''";
OleDbCommand MyQuery = new OleDbCommand(dbfQuery, dbfCon);
OleDbDataAdapter DA = new OleDbDataAdapter(MyQuery);
DA.Fill(dTable);
dataGrid.ItemsSource = dTable.AsDataView();
}
catch (OleDbException)
{
throw;
}
}
}
}
}
Стиль целенаправленные к другому типу должен присутствовать в пределах DataGrid.Resources>. –
AnjumSKhan
Почему вы меняете стиль для DataGridCell, если хотите изменить цвет для всей строки?Это НЕ то, что я предложил ..... Пожалуйста, снова посмотрите на мой ответ. – jsanalytics
@jstreet Извинения Я обновил его сейчас. – CBreeze