Привязка к «В» в раскадровке - PullRequest
3 голосов
/ 09 июня 2010

Я постараюсь сделать это настолько простым, насколько смогу.

Я хочу сделать это:

<Storyboard x:Name="MoveToLocation">
   <DoubleAnimation Duration="0:0:0.5" To="{Binding X}" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="grid" d:IsOptimized="True"/>
</Storyboard>

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

Как сделать эту анимацию с MVVM?Я не могу просто вставить статические данные, потому что они изменятся.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 09 июня 2010

DoubleAnimation также не является FrameworkElement, поэтому привязка к этому также не работает.См. Мой ответ на ваш предыдущий вопрос .

. Чтобы достичь цели, вам необходимо взять содержимое вашего DataTemplate и превратить его в UserControl.Этот новый элемент управления может затем предоставить набор свойств зависимостей, с которыми вам нужно связать, включая одно для To значения раскадровки.

0 голосов
/ 09 июня 2010

Если вы пытаетесь сделать это в стиле, вот почему это не работает. Silverlight заморозит его, потому что он используется всеми экземплярами этого стиля.

Попробуйте поместить его в сам элемент, и это должно сработать.

...