Csharp/C#教程:使属性在DataGridView中可见但在PropertyGrid中不可见?分享


使属性在DataGridView中可见但在PropertyGrid中不可见?

假设我有一个我希望在DataGridView中显示的属性,但是当PropertyGrid中显示相同的对象时却没有。 我知道我可以使用[Browsable(false)] ,但是它隐藏在两个视图中。 我也可以做一个gridView.Columns["blah"].Visible = false; ,但这与我想要的相反,因为它隐藏在DataGridView中而不是隐藏在PropertyGrid中。 有没有办法反过来? (没有创建一个全新的DataTable只是为了保持相同的数据减去一个字段,而是将所有内容重新绑定到那个 – 这真的是一种做事的kludge方式。)或者,我可以使用一个向DataGridView添加列的解决方案在实际课程中没有出现。

可以通过使用PropertyGrid的BrowsableAttributes属性来解决此问题。 首先,创建一个这样的新属性:

 public class PropertyGridBrowsableAttribute : Attribute { private bool browsable; public PropertyGridBrowsableAttribute(bool browsable){ this.browsable = browsable; } } 

然后将此属性添加到要在PropertyGrid中显示的所有属性:

 [DisplayName("First Name"), Category("Names"), PropertyGridBrowsable(true)] public string FirstName { get { return ... } set { ... } } 

然后像这样设置BrowsableAttributes属性:

 myPropertyGrid.BrowsableAttributes = new AttributeCollection( new Attribute[] { new PropertyGridBrowsableAttribute(true) }); 

这将仅显示属性网格中的属性属性,并且DataGridView仍然可以仅使用更多的编码工作来访问所有属性。

我仍然会使用Tergiver并将此行为称为错误,因为Browsable属性的文档明确说明了它仅用于属性窗口。

(信用证转到用户“maro”, url为https://www.mycsharp.de/wbb2/thread.php?postid=234565 )

上述就是C#学习教程:使属性在DataGridView中可见但在PropertyGrid中不可见?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1033337.html

(1)
上一篇 2022年1月18日
下一篇 2022年1月18日

精彩推荐