-1

我不知道 Currencymanager 到底是干什么用的。我没有明确实现它,但它阻止我在我的数据网格中隐藏行。

我从具有几列的 csv 文件构建数据网格。其中之一包括双倍金额(价格)。

当我想将所有行的数量设置为不可见时

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"

当我隐藏基于 ex 字符串的另一种列数据类型的行时,错误不会出现 - 仅当值为双精度时。

编辑:我通过捕获 InvalidOperationException 并忽略它暂时解决了这个问题。无论如何它都会执行。但我认为这不是很好的方式:S

我可以以某种方式取消对货币经理的债券吗?

4

1 回答 1

0

这种方法非常慢(或者您可以检查 theDataView及其RowFilter属性),但解决您的问题的方法是获取 DataGridView 的货币管理器对象并在您的代码之前和之后SuspendBinding调用。ResumeBinding

CurrencyManager manager = (CurrencyManager)BindingContext[dataGridView1.DataSource];
manager.SuspendBinding();

//your code goes here
//....

manager.ResumeBinding();
于 2018-12-23T16:05:26.013 回答