2012-11-20 34 views
0

我有我与下列财产属性网格观看一类的工作。的PropertyGrid不采摘彩色

最初,我可以打开下拉菜单。但是当我选择一种颜色时,它不会改变属性。在调试时,它甚至不会调用“set”访问器。此时,即使我输入颜色的名称并按Enter键,它也不会改变。

如果我取消选择对象(将属性网格的selecteditem设置为null),然后重新选择对象,然后可以通过键入其名称来更改颜色。但弹出窗口仍然不起作用。

有时会出现错误,当您单击下拉箭头时,弹出窗口甚至不会打开。

编辑:

这是专门与弹出一个问题。如果我不使用弹出窗口,我不会遇到任何问题。打开弹出框基本上会挂起正在提交的更改(发送PropertyChanged事件),直到整个控件失去焦点。因此,一旦我点击另一个窗口或另一个可聚焦控件,属性网格就会更新这个更改。

现在的问题是:为什么双击或按Enter键导致更改提交,但单击弹出窗口中的项不会?

+0

您是使用WinForms还是WPF? – kmatyaszek

+0

编辑我的问题。 –

+0

你的代码在发布后为我工作。 – LarsTech

回答

1

我想清楚是什么导致了这个问题。我在其中一个属性网格的父母上设置了窗口样式WS_EX_COMPOSITED。禁用此样式会导致PropertyGrid再次正常运行。

不幸的是我需要这种风格来减少我的应用程序中的闪烁。所以我很可能必须使用PropertyGrid以外的东西来改变我的对象的属性。

+0

你解决了这个问题吗?我和你一样遭遇同样的问题。 – Osk

+1

是的,禁用WS_EX_COMPOSITED修复了这个问题。 –

+0

谢谢,但这对我来说还不够...我必须尝试其他方法...... :( – Osk