Я пытаюсь запустить DoubleAnimation для свойства ViewModel, которое привязано к высоте сетки.
Следующий пример работает, но напрямую использует свойство HeightProperty для сетки.
private void _runAnimation(Grid target, double from, double to)
{
DoubleAnimation animation = new DoubleAnimation(from, to, new System.Windows.Duration(TimeSpan.FromMilliseconds(2000)));
Storyboard sb = new Storyboard();
sb.Children.Add(animation);
Storyboard.SetTarget(animation, target);
Storyboard.SetTargetProperty(animation, new System.Windows.PropertyPath(Grid.HeightProperty));
sb.Begin();
}
Можно ли использовать свойство ViewModel, которое привязано к высоте сетки?
Свойство My ViewModel:
private double entryHeight = entryHeightDefault;
public double EntryHeight
{
get
{
return entryHeight;
}
set
{
entryHeight = value;
RaisePropertyChanged();
}
}
Пример привязки к высоте:
<Grid x:Name="GdEntry" Height="{Binding Path=EntryHeight}" Background="Transparent">
Зачем мне нужно это решение:
У меня есть ListView, который использовал пользовательские шаблоны данных. Я пытался анимировать сетку в шаблоне данных. С событием SelectionChange из списка я получаю только выбранные и невыбранные модели представлений. Теперь я могу выяснить правильные ListViewItems и дочерние элементы с помощью VisualTreeHelper, но было бы лучше использовать свойство модели представления.