
Untitled
By: a guest on
Apr 17th, 2012 | syntax:
None | size: 1.30 KB | hits: 8 | expires: Never
infinite loop caused by datagridview rowremoved event and its bound datatable.defaultview.sort property
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace datagridviewsorterror
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Create a datatable
DataTable dt = new DataTable();
dt.Columns.Add("Number", typeof(int));
dt.Columns.Add("Number2", typeof(string));
for (int i = 0; i < 4; i++)
{
DataRow row = dt.NewRow();
row["Number"] = i % 2;
row["Number2"] = i;
dt.Rows.Add(row);
}
dataGridView1.DataSource = dt;
}
private void sortTable(DataTable dt)
{
dt.DefaultView.Sort = "Number, Number2";
dt.DefaultView.Sort = "";
}
private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
sortTable(dataGridView1.DataSource as DataTable);
}
}
}