У меня есть команда, которая должна переключать текущий вид, когда он выполняется. Я переплетен эта команда, чтобы мои кнопки, как это:Как передать CommandParameters в ViewModel?
<Button Style="{StaticResource TextButton}" Command="{Binding ViewModel:MainViewModel.OpenItemCommand}" CommandParameter="{Binding Link}"/>
Я хочу передать ссылку (ссылку на выбранную статью) к моей команде. Моя команда определяется следующим образом:
В моей ViewModel я это:
public ICommand OpenItemCommand
{
get
{
if (_openItemCommand == null)
{
_openItemCommand = new Command.Command(
p => true,
p => OpenItem(_HOW_DO_I_GET_THE_PARAMETER?_)
);
}
return _openItemCommand;
}
set
{
if (_openItemCommand != value)
{
_openItemCommand = value;
RaisePropertyChanged("OpenItemCommand");
}
}
}
private void OpenItem(Uri link)
{
throw new NotImplementedException();
}
Когда я создаю команду, мне нужно передать параметр командной строки (по ссылке) методу Execute. Но как я могу это оценить? Я определил CommandParameter в XAML, но я не знаю, как получить к нему доступ.
Я действительно искал через огромное количество веб-сайтов, но я не могу найти ответ.
Спасибо, выглядит очень хорошо :) У меня только проблема, что XAML не может найти мою команду. Я создал публичный RelayCommand в моей модели ViewModel, и я пытаюсь вызвать его с помощью Результаты в ошибке «Не удается разрешить символ« OpenItemCommand ». –
Установите DataContext вашего представления в вашу модель просмотра, например. public MyView() {InitializeComponent(); DataContext = новый ViewModel(); }. Или сделайте это в xaml. – Phil