Есть ли способ вызвать Navigate из ViewModel?

У меня есть проект Silverlight 4, который отображает диаграмму и несколько кнопок, позволяющих пользователю изменять диапазон дат диаграммы. Диапазон дат также можно передать с помощью параметра строки запроса, например http: // myserver / MySilverlightPage / #? DateRange = OneMonth , и когда пользователь нажимает кнопку, я хотел бы обновить URL тоже.

Я понимаю, что это можно сделать, позвонив this.NavigationService.Navigate (новый Uri (...)) , но насколько я могу судить, это можно сделать только из кода страницы Silverlight. А поскольку я использую MVVM, вся обработка команды происходит в классе ViewModel. Есть ли способ вызвать Navigate или иным образом изменить URL-адрес из ViewModel?

Чтобы уточнить, xaml включает следующую кнопку Button :

А класс ViewModel содержит Свойство OneMonthCommand :

public ICommand OneMonthCommand { get; set; }

При нажатии кнопки вызывается метод моей реализации ICommand Execute . Вопрос в том, как я могу изменить URL-адрес в этом методе?

7
задан Matthew Murdoch 6 April 2011 в 14:28
поделиться