C # propertyGrid - как указать, какой конструктор он использует для структур? - PullRequest
0 голосов
/ 30 марта 2012

У меня есть простая проблема: у меня есть структура Coordinates3D, которая в основном является 3D-точкой, но она также проверяет границы.Он имеет статические элементы maxX и minX и т. Д. И проверяет присвоенное значение координаты, чтобы соответствовать границам.Он также имеет логическое значение _check_boundaries, если значение равно false, он не будет проверять границы и разрешать любые значения для координат.В основном это выглядит так:

  struct Coordinate3D {
    public bool _check_boundaries;
    private int _x;
    public int X{
      get{ return _x;} 
      set { 
        if (_check_boundaries) 
        {  
          ... check min/max ...
        }
        _x = value;
      } 
    }
    ... y and x follow...
  }

Я хочу редактировать этот объект в propertyGrid (это свойство класса).Однако некоторые классы имеют ограниченные координаты, некоторые нет.Таким образом, для некоторых классов границы должны быть проверены, но не для других.Однако, когда я изменяю свойство этой структуры в propertyGrid, создается впечатление, что каждый раз создается новая структура.Следовательно, это либо «проверка границ» для всех случаев, либо «не проверка границ» для всех случаев, в зависимости от того, что установлено в конструкторе.

Есть ли способ обойти это?

...