Co.*_*den 20 c# datasource datagridview
我有一个DataGridView我设置的地方DataSource:
taskerEntities te = new taskerEntities();
var OMsMasterDescriptiveIndicators = te.MyTable.Select(x => new lccls {Id = x.Id, name = x.name }).ToList();
MyGrid.DataSource = OMsMasterDescriptiveIndicators;
Run Code Online (Sandbox Code Playgroud)
和我class lccls一样
public class lccls
{
public string Id { get; set; }
public Nullable<decimal> name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在某个事件中,我想让当前行不可见:
MyGrid.Rows[5].Visible = false;
Run Code Online (Sandbox Code Playgroud)
但我无法做到这一点.而是抛出异常,并显示以下错误消息:
与货币经理的头寸相关联的行不能隐藏
我怀疑原因与设置有关DataSource,但为什么呢?
Co.*_*den 45
经过大量搜索,我得到了解决方案
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[MyGrid.DataSource];
currencyManager1.SuspendBinding();
MyGrid.Rows[5].Visible = false;
currencyManager1.ResumeBinding();
Run Code Online (Sandbox Code Playgroud)
Moo*_* Pc 12
当前行索引在尝试隐藏当前单元格时会遇到此类错误,无法将yourDataGridView行visible属性设置为false
洗液:
当yourDataGridView数据源不为null时:
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[yourDataGridView.DataSource];
currencyManager1.SuspendBinding();
yourDataGridView.Rows[Target Index].Visible = false;
currencyManager1.ResumeBinding();
Run Code Online (Sandbox Code Playgroud)
当yourDataGridView数据源为null时:
yourDataGridView.CurrentCell = null;
yourDataGridView.Rows[Target Index].Visible = false;
Run Code Online (Sandbox Code Playgroud)