Запустите двойную анимацию для свойства модели представления в приложении WPF - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь запустить 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, но было бы лучше использовать свойство модели представления.

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