0
جلوگیری از تغییر BackColor در دیتاگرید ویو بعد Sort
با سلام و احترام
بعنوان مثال BackColor ردیف هایی که مقدار ستون پرداخت شده آنها True است را قرمز رنگ کرده ایم
هم اکنون بعد کلیک بر روی Column ی خاص (Sorting) رنگ قرمز به رنگ پیش فرض BackColor تبدیل می شود؟
آیا راهکاری برای حل این موضوع سراغ دارین؟
1 پاسخ
1
سلام
این مورد به این دلیل پیش می آید که هنگام عمل sorting دیتاگریدویو rebind می شود.
جهت رفع مشکل برای همیشه قرمز ماندن رنگ پس زمینه سلول های مورد نظر از کد زیر استفاده کنید:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DataTable dt = new DataTable();
dt.Columns.Add("Column1", typeof(string));
dt.Columns.Add("Paid", typeof(bool));
var dr = dt.NewRow();
dt.Rows.Add("a", true);
dt.Rows.Add("b", false);
dt.Rows.Add("c", false);
dt.Rows.Add("d", true);
dt.Rows.Add("e", true);
dataGridView1.DataSource = dt;
}
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
if (Convert.ToBoolean(row.Cells["Paid"].Value))
{
row.Cells["Paid"].Style.BackColor = Color.Red;
}
}
}