Подскажите пожалуйста как получить от PropertyGrid уведомление о редактировании выделенного в нем объекта.
Например (см. код ниже):
в PropertyGrid выбирается объект типа Modules в котором есть два свойства
int intProp — никаких проблем не вызывает и его изменения отслеживаются через PropertyValueChanged
а вот List<Module> modules как раз и вызывает трудности
Собственно вопрос в том, как отследить редактирование свойства modules и его членов (элементов коллекции).
Есть такие идеи:
создать свой класс списка и реализовать в нем событие типа ListChangedEventHandler, но это решает проблему только частично (добавление/удаление элементов коллекции), поскольку изменения элементов коллекции отследить таким образом не выйдет.
ListChangedEventHandler + отслеживать изменения данных в сеттерах класса Module, но это на мой взгляд вообще безумие.
Ну вобщем, подскажите пожалуйста какой нибудь мудрый полууниверсальный способ. Я почему-то уверен, что PropertyGrid все это позволяет.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
initEditor();
}
Modules modules;
private void initEditor()
{
modules = new Modules();
propertyGridModules.SelectedObject = modules;
}
private void propertyGridModules_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
{
MessageBox.Show("PropertyValueChanged");
}
}
class Modules
{
private List<Module> m_modules = new List<Module>();
public List<Module> modules
{
get { return m_modules; }
set { m_modules = value; }
}
private int m_intProp;
public int intProp
{
get { return m_intProp; }
set { m_intProp = value; }
}
}
class Module
{
private int m_index;
public int index
{
get { return m_index; }
set { m_index = value; }
}
private Rectangle m_position;
public Rectangle position
{
get { return m_position; }
set { m_position = value; }
}
}
04.12.07 14:32: Перенесено модератором из '.NET' — AndrewVK