Динамическая привязка между элементами управления в WP7 XAML - PullRequest
2 голосов
/ 22 июля 2011

Я пытаюсь нарисовать простую линию в WP7 XAML, такую ​​как приведенная ниже. Со статическими значениями координат это прекрасно работает.

<Line Stroke="White" 
      X1="1" Y1="1" 
      X2="200" Y2="1" />

Мне нужно связать значения координат относительно других элементов управления на том же Canvas на основе соответствующего значения свойства, такого как Id или Name . Как только правильный контроль привязан, мне нужно получить его Left и / или Top Canvas. Используя расплывчатый псевдокод, вот что я хотел бы сделать ...

<Line Stroke="White" 
      X1="{Binding Canvas.Left, Source={Binding <a_control_where_a_property_equals_some_value>}}" Y1="1" 
      X2="200" Y2="1" />

Я пробовал несколько сценариев связывания, но безуспешно. Дополнительная сложность заключается в том, что это привязка к Windows Phone 7 (WP7), а не полноценный XAML.

Примечание. Все элементы управления добавляются во время выполнения, поэтому они не определены статически.

Любые предложения ???

1 Ответ

1 голос
/ 22 июля 2011

Лучшее, на что вы можете надеяться, это использовать ElementName . Кроме этого, вам нужно было бы предоставить общее свойство где-то, к которому будут привязаны оба элемента управления. Возможно в view-модели, но это зависит от ваших настроек.

Образец ElementName:

<Canvas>
    <Line x:Name="line1" Stroke="White" X1="1" Y1="1"  X2="200" Y2="1" />
    <Line Stroke="White" X1="{Binding ElementName=line1, Path=X1}" Y1="10"  X2="200" Y2="1" />
</Canvas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...