【发布时间】:2011-11-14 22:53:30
【问题描述】:
我目前正在研究 C# WPF 数据网格。我有一个 DataGrid,它具有自动生成的列,并且代码连接到 SQLite 数据库并创建一个数据集,然后将此数据集设置为 DataGrid ItemsSource。
下面是 DataGrid 的 XAML 代码
<DataGrid AutoGenerateColumns="True"
Margin="12,71,12,32"
Name="tblLog"
ColumnWidth="*"
CanUserResizeRows="False"
AreRowDetailsFrozen="False"
CanUserAddRows="True"
CanUserDeleteRows="True"
IsReadOnly="True"
MouseDoubleClick="tblLog_MouseDoubleClick">
</DataGrid>
下面是为 DataGrid 设置 ItemsSource 的代码
try
{
DataSet ds = new DataSet();
SQLiteDataAdapter da = new SQLiteDataAdapter(query, db.conn);
da.Fill(ds);
//tblGrid.AutoGenerateColumns = true;
tblGrid.ItemsSource = ds.Tables[0].DefaultView;
}
catch (SQLiteException ex)
{
MessageBox.Show("Unable to retrieve logins from database.\n\n" + ex.Message + "\n\nError Code: " + ex.ErrorCode);
}
数据库中显示的列(自动生成)是 ID、日期、时间、状态。 我需要做的是,如果状态列的一行中的值等于错误,则更改该行的背景颜色。
我假设我需要在 DataGrid 标记中添加某种样式标记和 DataTriggers,但不确定我需要什么。我对设置 ItemsSource 的代码所做的任何尝试都会显示一个错误,指出在添加 ItemsSource 之前 Source 需要为空。
感谢您提供的任何帮助。
【问题讨论】:
-
我们为单元格和行设置样式的方式是使用未命名的无键样式。当我们指定它们的 TargetType 时,它们适用于所有元素。 codeproject.com/KB/WPF/WPFDataGridExamples.aspx
标签: c# wpf xaml wpfdatagrid