- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 类 PGMain 作为 propertygrid 中的 SelectedObject:
[DefaultPropertyAttribute("Basic")]
[Serializable]
public class PGMain
{
private TestClass m_TEST = new TestClass();
[CategoryAttribute("TEST")]
public TestClass TEST
{
get { return m_TEST; }
set { m_TEST = value; }
}
// More members are here
}
现在我想在 PropertyGrid 中扩展 TestClass 的成员。所以我尝试了以下方法:
[Serializable]
[DescriptionAttribute("Expand to see the options for the application.")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class TestClass : ExpandableObjectConverter
{
[CategoryAttribute("test-cat"), DescriptionAttribute("desc")]
public string Name = "";
[CategoryAttribute("test-cat"), DescriptionAttribute("desc")]
public object Value = null;
[CategoryAttribute("test-cat"), DescriptionAttribute("desc")]
public bool Include = true;
public override bool CanConvertTo(ITypeDescriptorContext context, System.Type destinationType)
{
if (destinationType == typeof(TestClass))
return true;
return base.CanConvertTo(context, destinationType);
}
}
结果是propertygrid中的TestClass前面有一个expandable-icon但是不能展开。我错过了什么?明确一点:我可以显示 PGMain 类的可扩展成员,但不能显示 PGMain 类成员的可扩展成员,例如 PGMain 中的测试成员。
编辑:
不,我有 2 个类而不是 1 个。
[DefaultPropertyAttribute("Basic")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class fooA
{
private fooB m_TestMember = new fooB();
[Browsable(true)]
[CategoryAttribute("Test category"), DescriptionAttribute("desctiption here")] // <<<<< this one works.
[TypeConverter(typeof(fooB))]
public fooB TestMember
{
get { return m_TestMember; }
set { m_TestMember = value; }
}
}
[DefaultPropertyAttribute("Basic")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class fooB
{
private string m_ShowThisMemberInGrid = "it works"; // <<<<< this doesn NOT work
[CategoryAttribute("Tile"), DescriptionAttribute("desctiption here")]
public string ShowThisMemberInGrid
{
get { return m_ShowThisMemberInGrid; }
set { m_ShowThisMemberInGrid = value; }
}
public override string ToString()
{
return "foo B";
}
}
但我确实解决了这个问题(巧合)。公共(public)变量似乎没有列在 propertygrid 中。它必须是具有 getter 和 setter 的属性。这就是解决方案。所以上面的代码片段解决了这个问题。无论如何感谢您的回复:)。
最佳答案
错误:
[CategoryAttribute("Tile"), DescriptionAttribute("desctiption here")]
public string Name = "";
好:
private string m_Name = new string();
[CategoryAttribute("Tile"), DescriptionAttribute("desctiption here")]
public string Name
{
get { return m_Name; }
set { m_Name = value; }
}
关于c# - PropertyGrid 显示也是类的类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257217/
我是C#/WPF的初学者,正在尝试使用Xceed PropertyGrid。在他们的网站上,他们显示了一个示例:
对 PropertyGrid 控件进行了一些运行,现在偶然发现了一个奇怪的问题。我在一个类中有一个 Uint32 属性,它是一个位掩码。因此,我决定创建一个带有 32 个按钮的自定义下拉 UserCo
我有一个项目,我们必须以所见即所得的方式在用户控件上表示一些图形对象。还需要编辑每个对象的属性(颜色、位置等)。 alt text http://lh6.ggpht.com/_1TPOP7DzY1E/
我正在使用 PropertyGrid (在 CollectionEditor 中)编辑类的一些属性。这些属性实际上包含在实现 ICustomTypeDescriptor 的类中。 .其中之一使用继承自
我见过的所有 PropertyGrid 示例都允许用户编辑单个对象,PropertyGrid 通过反射扫描该对象。我希望用户能够编辑一个 ini 文件或一本普通的字典,每个键值对一行。这可能吗? 最佳
有没有办法使 ExtJS4 PropertyGrid (Ext.grid.property.Grid) 不可编辑? 没有“可编辑”或“只读”配置选项 AFAICS。 最佳答案 另一种解决方案是添加一个
在 PropertyGrid 表单元素中,当我将属性添加到我的类别时,一些属性以粗体显示。 现在,我知道它表明它们是该类别中的默认值。我的问题是如何使所有属性不加粗? 我知道一种可能的方法是更改
我有: class Foo1 { private string name1; [CategoryAttribute("Category1")] public string Na
我有一个 PropertyGrid,我向其中添加了一个 bool 值数组。数组本身被标记为只读,属性网格可以正确识别它。 但是:如果我在网格中展开数组,所有项目都可以由用户编辑。当然那不是我想要的。如
我一直在研究 PropertyGrids,将它们链接到类,并试图弄清楚如何(如果可能)我可以显示一个类,在 扁平结构(好像它们都在一个类中) 我有几个类,Foo 和 Bar,如下所示: [Serial
在 C# 中,当使用对象具有 Collection 的 PropertyGrid 时,什么决定 DisplayName 旁边的值是否显示该值“(集合)”? 这个值是否有特定的属性? 谢谢 最佳答案 您
我在使用 propertygrid 时遇到了一些问题。即: 当我在 visual studio 设计器中使用 propertygrid 时,行为与在运行时以及调试时不同。 需要注意的几点(这是在设计器
我正在尝试使用 VS2005 (.NET 2.0) 在 C# 中实现对属性网格的拖放支持。 propertygrid 可以处理 dragenter 等事件,但似乎没有办法在拖动事件期间将 gridit
我正在使用 PropertyGrid 来显示通过实现 ICustomTypeDescriptor 公开的自定义属性。 我的对象设置在树结构中,每个属性的值要么在每个对象中设置,要么从父对象继承。在 P
是否可以在属性网格提示中添加可点击的超链接? 我的类(class)有以下内容(作为 SelectedObject 分配给属性网格): [Browsable(true), ReadOnly(false)
是否有一种简单的方法可以查明用户当前是否正在编辑属性网格? 我的用例如下:我每秒更新一次网格数据。如果用户正在编辑一个值,则在调用我的更新时所有输入都会丢失。所以我想做的是仅在用户未编辑内容时更新。
我有 类 PGMain 作为 propertygrid 中的 SelectedObject: [DefaultPropertyAttribute("Basic")] [Seriali
我有一个包含两个属性网格的表单。第一个网格的 SelectedObject 属性设置为包含 item 对象。而第二个设置为item.Test; public MainForm() { Init
我有一个 PropertyGrid。当我输入格式错误的值(即 - 将字符串转换为整数项)时,我收到一条错误消息。如果我单击“确定”,则错误值会一直存在,直到我更改它为止。如果我点击“取消”,原始值又回
在 C# (.Net 2.0) 的一个项目中,我使用了一个 propertygrid。此属性网格显示通过 SOAP 从 PHP 后端检索的对象。某些对象包含字符串属性,其中空字符串的含义与 NULL
我是一名优秀的程序员,十分优秀!