CurrencyManager 防止在 DataGrid 中隐藏一行
CurrencyManager prevents hiding a row in a DataGrid
我不太清楚 Currencymanager 的用途。我没有明确实施它,但它阻止我在我的数据网格中隐藏行。
我从一个包含多个列的 csv 文件构建数据网格。其中之一包括双倍金额(价格)。
当我想将所有行的数量 lower/greater 设置为不可见时
public override void Execute(object o) {
DataGridViewRow row = (DataGridViewRow)o;
if ((string)Value == "off") row.Visible = false;
}
它告诉我喜欢
"Could not hide Rows bounded to the Currency Manager"
当我隐藏基于前字符串的另一列数据类型的行时,错误不会出现 - 仅当值为双精度时。
编辑:我通过捕捉 InvalidOperationException 并忽略它暂时解决了这个问题。它无论如何都会执行。但我认为这不是很好的方式 :S
我能以某种方式取消对货币经理的保证金吗?
这种方法非常慢(或者您可以检查 DataView
及其 RowFilter
属性),但解决问题的方法是获取 DataGridView 的货币管理器对象并在代码前后调用 SuspendBinding
和 ResumeBinding
。
CurrencyManager manager = (CurrencyManager)BindingContext[dataGridView1.DataSource];
manager.SuspendBinding();
//your code goes here
//....
manager.ResumeBinding();
我不太清楚 Currencymanager 的用途。我没有明确实施它,但它阻止我在我的数据网格中隐藏行。
我从一个包含多个列的 csv 文件构建数据网格。其中之一包括双倍金额(价格)。
当我想将所有行的数量 lower/greater 设置为不可见时
public override void Execute(object o) {
DataGridViewRow row = (DataGridViewRow)o;
if ((string)Value == "off") row.Visible = false;
}
它告诉我喜欢
"Could not hide Rows bounded to the Currency Manager"
当我隐藏基于前字符串的另一列数据类型的行时,错误不会出现 - 仅当值为双精度时。
编辑:我通过捕捉 InvalidOperationException 并忽略它暂时解决了这个问题。它无论如何都会执行。但我认为这不是很好的方式 :S
我能以某种方式取消对货币经理的保证金吗?
这种方法非常慢(或者您可以检查 DataView
及其 RowFilter
属性),但解决问题的方法是获取 DataGridView 的货币管理器对象并在代码前后调用 SuspendBinding
和 ResumeBinding
。
CurrencyManager manager = (CurrencyManager)BindingContext[dataGridView1.DataSource];
manager.SuspendBinding();
//your code goes here
//....
manager.ResumeBinding();