Поскольку анимации являются действиями для конкретного вида, их следует запускать из кода за представлением, а не из модели представления.Раньше я подключался к событию и просто запускал из выделенного кода следующее:
Storyboard animation = (Storyboard)panel.FindResource("MyAnimation");
animation.Begin();
Что касается вопроса № 1, я не вижу никаких проблем с вашим кодом для отображениядругой вид на основе свойства в ViewModel.