WPF PropertyGrid支持多种选择

时间:2015-10-08 08:06:37

标签: c# wpf propertygrid wpf-extended-toolkit

此文档是否仍然有效或我遗失了什么?

http://doc.xceedsoft.com/products/XceedWpfToolkit/Xceed.Wpf.Toolkit~Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid~SelectedObjects.html

PropertyGrid控件似乎没有SelectedObjectsSelectedObjectsOverride成员。我正在使用针对.NET Framework 4.0的Toolkit的最新版本(2.5)。

更新

@ faztp12的回答让我了解了。对于寻找解决方案的任何其他人,请按照以下步骤操作:

  1. PropertyGrid的{​​{1}}媒体资源绑定到第一个选定项目。像这样:

    SelectedObject
  2. 收听<xctk:PropertyGrid PropertyValueChanged="PG_PropertyValueChanged" SelectedObject="{Binding SelectedObjects[0]}" /> 的{​​{1}}事件,并使用以下代码将属性值更新为所有选定对象。

    PropertyValueChanged
  3. 希望这可以帮助有人在路上。

1 个答案:

答案 0 :(得分:2)

当我遇到类似问题时,我做了什么,我订阅了PropertyValueChangedList填充了SelectedObjects

我检查了List的内容是否属于同一类型,然后如果是这样,我更改了每个项目中的属性:

PropertyItem changedProperty = (PropertyItem)e.OriginalSource;
PropertyInfo t = typeof(myClass).GetProperty(changedProperty.PropertyDescriptor.Name);
                if (t != null)
                {
                    foreach (myClass x in SelectedItems)
                        t.SetValue(x, e.NewValue);
                }

我使用了这个,因为我需要制作一个布局设计师,这使我能够一起更改多个项目的属性:)

希望它有所帮助:)

参考Xceed Docs