C# winform中DataGridview绑定数据库CellFormatting无法自动更新,该如何解决
C# winform中DataGridview绑定数据库CellFormatting无法自动更新
我有一张数据表,读取到datatable中
其中一个字段为<在线状态>,它的值可能是“在线”或者“离线”
现在通过datagridview绑定这张表,绑定之前加了一列DataGridViewImageColumn
绑定后通过CellFormatting事件来更新DataGridViewImageColumn列的图片
在开始绑定、界面刷新时显示没有问题,“OnlineState”的图片都会跟着“在线状态”的值变化,但是在界面不动的情况下,程序内部改变了table中“在线状态”的值,dgv上也可以看到该值的变化,但就是“OnlineState”的图片没有跟着刷新。请问怎么才能解决这个问题?
------解决思路----------------------
试试直接在dt里面给图片看看
然后在这样。
dgv.DataSource = dt;
我有一张数据表,读取到datatable中
其中一个字段为<在线状态>,它的值可能是“在线”或者“离线”
现在通过datagridview绑定这张表,绑定之前加了一列DataGridViewImageColumn
DataGridViewImageColumn column = new DataGridViewImageColumn();
column.Name = "OnlineState";
column.HeaderText = "状态";
dgv.Columns.Insert(0, column);
dgv.DataSource = table;
绑定后通过CellFormatting事件来更新DataGridViewImageColumn列的图片
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgv.Columns[e.ColumnIndex].Name.Equals("OnlineState") && dgv.Columns.Count > 3)
{
string key;
string s = (string)dgv.Rows[e.RowIndex].Cells["在线状态"].Value;
if (s == "在线")
{
key = "online";
}
else
{
key = "offline";
}
e.Value = imageList1.Images[key]; // 通过值来取出对应的图片
e.FormattingApplied = true;
}
}
在开始绑定、界面刷新时显示没有问题,“OnlineState”的图片都会跟着“在线状态”的值变化,但是在界面不动的情况下,程序内部改变了table中“在线状态”的值,dgv上也可以看到该值的变化,但就是“OnlineState”的图片没有跟着刷新。请问怎么才能解决这个问题?
------解决思路----------------------
dt.Rows[0][0] = Image.FromFile("");
试试直接在dt里面给图片看看
然后在这样。
dgv.DataSource = dt;