2015-05-10 5 views
0

У меня есть следующее свойство:Класс, полученный из ICommand с параметрами

public ICommand ApplySelectedSearchResultCommand { get { return new RelayCommand(ApplySelectedSearchResult, IsSearchResultSelected); } } 

Класс RelayCommand является классом от MVVM-мини "рамки", который является производным от ICommand:

public class RelayCommand : ICommand 
{ 
    public RelayCommand(Action execute) 
     : this(execute, null) 
    { 
    } 

    public RelayCommand(Action execute, Func<Boolean> canExecute) 
    { 

     if (execute == null) 
      throw new ArgumentNullException("execute"); 
     _execute = execute; 
     _canExecute = canExecute; 
    } 
} 

Однако мой метод ApplySelectedSearchResult, который до сих пор не имел параметров, изменился и теперь содержит параметры:

protected abstract void ApplySelectedSearchResult(Model primaryModel, Model secondaryModel); 

Как изменить мою недвижимость?

+1

Откуда эти аргументы «Модели»? –

+0

@CharlesMager Я собирался написать то же самое :) –

+0

Каждый viewModel имеет primaryModel (Type 'Model') и secondaryModel (Type' Model'). – mosquito87

ответ

1

Предполагая, как вы предлагаете, модель представления есть эти модели, то вы можете создать метод без параметров, который обеспечивает аргументы:

private void ApplySelectedSearchResult() 
{ 
    ApplySelectedSearchResult(primary, secondary); 
} 

или инлайн это как делегат действия:

new RelayCommand(() => ApplySelectedSearchResult(primary, secondary), IsSearchResultSelected); 

 Смежные вопросы

  • Нет связанных вопросов^_^