Привязка позиции прямоугольника к другому прямоугольнику - PullRequest
1 голос
/ 05 сентября 2011

Я пытаюсь нарисовать график и попал в ловушку проблемы дизайна. В классе Chart я определил форму области для рисования в виде прямоугольника:

class Chart
{
   // ...
   public Rectangle drawArea;

   public void addAxisDesc(AxisDescription desc)
   {
      // ... add left Y-axis
      // set the axis x-starting position to the start point of the drawing area
      desc.shape.X = drawArea.X;
   }          
}

Класс Chart имеет возможность добавить описание оси, форма которой также определяется прямоугольником.

Теперь моя цель - сохранить значения в desc.shape.X и drawArea.X одинаковыми. Так что если drawArea.X изменится, desc.shape.X также следует изменить.

У меня было несколько идей, как решить эту проблему, но ни одна из них не показалась мне действительно полезной:

  • Зарегистрировать обработчик событий и изменить значение оси, если значение drawArea изменяется
  • Установить все позиции относительно родительского элемента и получить абсолютную позицию только во время рендеринга

Кто-нибудь знает, как решить эту проблему или, возможно, как вообще можно избежать этой проблемы?

1 Ответ

1 голос
/ 05 сентября 2011

Я предлагаю вам пойти с подходом события.Это тот же подход, который WPF использует для привязки данных.Для этого даже существует интерфейс: INotifyPropertyChanged

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...