Tag: propertygrid

刷新propertygrid中的集合

干草全部。 我正在使用属性网格添加或删除对象的集合。 但是当收集器只在网格刷新时关闭。 添加另一个对象后,网格不会刷新。 列表中的集合。 我见过很多人有同样的问题,但没有解决方案。 thansk

如何序列化控件

我们有一个包含数据库作为xml文件的应用程序。 它有客户端服务器架构。 所以这里服务器将使用数据集从xml文件中读取数据并将其存储在xml模式中。 然后,服务器将序列化数据并将其传递给UI(客户端)。使用左侧的Treeview,右上角的listview和右下角的propertygrid显示UI数据。 Ui中的数据分类为类和对象。 所以现在我们的数据库中有一个xml文件machinesclass.xml和machineobjects.xml。 machinesclass.xml包含各种类,如电子类,计算机类,农业工具类等,machineobjects.xml包含电视,奔腾4计算机,Tractror等。所以现在在UI中,如果我从树视图中选择电子节点,它将列出电视,广播,电话等通过使用Listview将它包含在右上方的对象中,如果我选择对象“TV”,则在右下角的propertygrid中显示与TV相关的属性。 所以现在我们有一个任务,如果有人想要从xml文件(.xml),从父机器类例和机器对象.xml中取回UI中的选定对象 例如,如果有人从UI列表视图中选择电视并希望以.xml文件(tv.xml)的forms进行备份,那么在某些时候他可以导入数据,我们可以在这里实现什么逻辑? 我可以序列化listview和propertygrid,还是有任何选项可以做到这一点? 这是我在UI中用于复制粘贴操作的一些代码

将字符串数组转换为枚举

我将enum绑定到属性网格,如下所示: public enum myEnum { Ethernet, Wireless, Bluetooth } public class MyClass { public MyClass() { MyProperty = MyEnum.Wireless; } [DefaultValue(MyEnum.Wireless)] public MyEnum MyProperty { get; set; } } public Form1() { InitializeComponent(); PropertyGrid pg = new PropertyGrid(); pg.SelectedObject = new MyClass(); pg.Dock = DockStyle.Fill; this.Controls.Add(pg); } 我的问题:我在程序运行时动态获取数据。 我读了网络适配器,然后将适配器名称存储到myArray如下所示: string[] myArray = new string[] { […]

C#.Net 4.5 PropertyGrid:如何隐藏属性

问题很简单(我希望这有一个简单的解决方案!):我想隐藏(Browsable(false))属性“Element”(在我的PropertyGrid对象中),当它为零时。 public class Question { … public int Element { get; set; } }

如何在属性网格中显示动态对象?

我有一个自定义对象类型,必须在PropertyGrid可编辑: public class CustomObjectType { public string Name { get; set; } public List Properties {get; set;} } 其中包含自定义属性列表: public class CustomProperty { public string Name { get; set; } public string Desc { get; set; } public Object DefaultValue { get; set; } Type type; public Type Type { get { return type; } […]

如何创建自定义集合编辑器表单以与属性网格一起使用?

我试图将属性网格控件与一个类相结合,该类具有另一个类的列表/集合作为其中一个属性。 让我们称它们为A类,列表将包含B类供参考。 我想要合并一个有两个列表框的表单。 左侧的列表框将包含我的程序中当前不在右侧列表中的所有B类的列表。 右边的列表将包含当前与A类关联的所有B类。我希望两者之间的按钮在两个列表之间移动项目。 这很容易设计,但我不确定如何设置表单以用作集合编辑器。 谁能指出我正确的方向? 而且,我如何设置一个包含可供选择的ID列表的属性的下拉列表,如果有人可以指出我的方向来完成这个。

Xceed WPF propertyGrid显示扩展集合的项目

如何在Xceed WPF PropertyGrid中显示自定义对象的ObservableCollection ,其中每个List Item都可以展开以显示自定义对象属性。 (即: —- —– PropertyGrid的 CoreClass (+/-)ObservableCollection (+/-)CustomClass.Object1 Property1:价值 Property2:价值 … PropertyN:价值 (+/-)CustomClass.Object2 Property1:价值 Property2:价值 … PropertyN:价值 如果我在ObservableCollection上使用[ExpandableObject] ,它只显示Counts属性。 编辑:(添加代码) MainWindow.xaml: MainWindow.xaml.cs public partial class MainWindow : Window { public MainWindow() { MainWindowViewModel mwvm = new MainWindowViewModel(); this.DataContext = mwvm; InitializeComponent(); } } MainWindowViewModel.cs public class MainWindowViewModel { public Item BindingItem […]

在Designer中删除GenerateMember和Modifiers属性

我创建了一个Button后代,我隐藏了所有不使用的属性。 我是这样做的: [Browsable(false)] [Bindable(false)] [EditorBrowsable(EditorBrowsableState.Never)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [Obsolete(“”, true)] public new Boolean AllowDrop { get; set; } 大多数属性都被正确隐藏,无法使用。 但是有两个属性是我无法摆脱的。 有没有办法在Designer中删除GenerateMember和Modifiers?

更新PropertyGrid

当SelectedObject属性中的对象发生更改时,如何自动更新属性网格? 我已经尝试在我的类中实现INotifyPropertyChanged但是属性网格实际上并没有在后台显示对象的新属性,直到我点击它。 我已经尝试直接订阅我的对象的PropertyChanged事件,并在调用它时调用PropertyGrid的Refresh()方法。 但是我的一些房产是相关的。 更改一个属性的含义可能会引发多个PropertyChanged事件。 这似乎工作正常,但我仍然想知道是否有更简洁的方法通过DataBinding这样做。 此外,我还想避免在用户仅更新单个属性后多次使用控件Refresh。 那么有没有办法让PropertyGrid从PropertyChanged事件中刷新?

在属性网格中编辑集合的正确方法是什么

我有一个显示在属性网格中的类。 其中一个属性是List 。 设置代码的最简单/最正确的方法是什么,以便我可以通过属性网格添加和删除此集合中的项目,最好使用标准的CollectionEditor 。 错误的方法之一是这样的: 编辑集合时未设置调用 用户annakata建议我公开IEnumerable接口而不是集合。 有人可以提供更多细节吗? 我有额外的复杂性, get返回的集合实际上并没有指向我的类中的成员,而是从其他成员动态构建,如下所示: public List Stuff { get { List stuff = new List(); //…populate stuff with data from an internal xml-tree return stuff; } set { //…update some data in the internal xml-tree using value } }