Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#使用datasource在datagridview中隐藏属性_C#_Attributes_Datasource - Fatal编程技术网

c#使用datasource在datagridview中隐藏属性

c#使用datasource在datagridview中隐藏属性,c#,attributes,datasource,C#,Attributes,Datasource,我认为必须有一个属性来隐藏datagridview中的公共属性。但是我找不到它 来自 [可浏览(错误)]如果您自己添加列。。。不要添加不需要的列 如果启用了AutoCreateColumns,则: 如果是基于类的模型,请将[Browsable(false)]添加到您不需要的属性中 或者将列的.Visible设置为false 或者干脆删除以后不需要的列 根据您的问题,我可以想象您不想在datagridview中显示某些“列”吗?如果是这样,请使用Columns属性添加和删除在数据源上找到的用于附

我认为必须有一个属性来隐藏datagridview中的公共属性。但是我找不到它

来自


[可浏览(错误)]

如果您自己添加列。。。不要添加不需要的列

如果启用了
AutoCreateColumns
,则:

  • 如果是基于类的模型,请将
    [Browsable(false)]
    添加到您不需要的属性中
  • 或者将列的
    .Visible
    设置为false
  • 或者干脆删除以后不需要的列

根据您的问题,我可以想象您不想在datagridview中显示某些“列”吗?如果是这样,请使用Columns属性添加和删除在数据源上找到的用于附加到网格的任何自动创建的列

默认情况下,DataGridView将为基础数据源对象上的所有公共属性创建列。所以

public class MyClass
{
   private string _name;

   public string Name
   {
      get{ return _name; }
      set { _name = value; }
   }

   public string TestProperty
   {
      { get { return "Sample"; }
   }
}

...
[inside some form that contains your DataGridView class]

MyClass c = new MyClass();

// setting the data source will generate a column for "Name" and "TestProperty"
dataGridView1.DataSource = c;

// to remove specific columns from the DataGridView
// dataGridView1.Columns.Remove("TestProperty")

您可以使用以下链接来满足您的要求:另一个选项是在AutoGeneratingColumnHandler中将DataGridAutoGeneratingColumnEventArgs.Cancel设置为true。是的,BrowsableAttribute!这是我一整天都在找的东西。谢谢。@Szybki IIRC,我发现它在找什么的唯一方法就是看反射器。。。从网格到
PropertyDescriptor
,再到
PropertyInfo
。这并不明显;p我可以在这里找到这个
自动创建列
?@Daniel您可能正在使用web控件吗?在撰写本文时,我认为这个问题是指winforms,它有这个属性