Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как сделать связь между объектами в propertygrid?

Здравствуйте, подскажите пожалуйста, вот у меня есть два propertygrid
59e6f8ba9057d749364053.jpeg
Нужно сделать так, что бы поле из правого объекта, можно было связать с каким нибудь полем из левого объекта. Вот думаю сейчас как же получить эти поля. Просто вот эти вот объекты классов которые добавлены в propertygrid они производны от этого класса
public class ClassNew
    {
        public int IDObj = 0;
        public string nameObj;
        public int Counter = 0;
        public object CloneObj()
        {
            this.Counter++;
            return this.MemberwiseClone();
        }
    }

А добавляются они в propertygrid вот так:
List<ClassNew> Array_Get_object = new List<ClassNew>(); //Коллекция объектов которые переданы для связи
        
private void CollectBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox NewSelect = sender as ComboBox;
            foreach(ClassNew Obj_selectI in Array_Get_object)
            {
                if (NewSelect.Name == CollectBox1.Name && NewSelect.SelectedItem.ToString() == Obj_selectI.nameObj)
                {
                    propertyGrid1.SelectedObject = Obj_selectI;
                }
                else if (NewSelect.Name == CollectBox2.Name && NewSelect.SelectedItem.ToString() == Obj_selectI.nameObj)
                {
                    propertyGrid2.SelectedObject = Obj_selectI;
                }
            }
        }
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
В полной мере не понятна суть вопроса. Необходимо чтобы, например, изменяя значение свойства A первого класса, эти изменения отражались в свойстве X второго класса?

Если так, то вероятно нужно смотреть в сторону события PropertyValueChanged:
private void propertyGrid1_PropertyValueChanged(Object sender, PropertyValueChangedEventArgs e) 
{
  System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();

  messageBoxCS.AppendFormat("{0} = {1}", "ChangedItem", e.ChangedItem );
  messageBoxCS.AppendLine();

  messageBoxCS.AppendFormat("{0} = {1}", "OldValue", e.OldValue );
  messageBoxCS.AppendLine();

  MessageBox.Show(messageBoxCS.ToString(), "PropertyValueChanged Event" );
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы