Я все еще изучаю mvvm
и кодирую с c#
, но я застрял в проблеме, о которой я не знаю, как ее обойти. Мой проект, кажется, не признаютRaiseCanExecuteChanged не распознается даже с правой директивой
RaiseCanExecuteChanged
даже когда я использую
System.Windows.Input;
я использую MVVM Light
и в NET4.5
Погрешность я получаю это
`System.Windows.Input.ICommand` does not contain a definition for '`RaiseCanExecuteChanged`' and no extension method '`RaiseCanExecuteChanged`' accepting a first argument of type 'System.Windows.Input.Icommand' could be found(are you missing a using directive or an assembly reference?)
Кто-нибудь сталкивался с этим вопросом раньше? Спасибо за вашу помощь
Вот код, я использую в ViewModel, чтобы создать команду
public class NetworkingViewModel : ViewModelBase, INotifyPropertyChanged
{
public NetworkingViewModel()
{
AddPersonCommand = new RelayCommand(AddPerson,CanAddName);
}
public ICommand AddPersonCommand {get; private set;}
private void AddPerson()
{
*adds person to an observableCollection*
}
private bool CanAddName()
{
return !string.IsNullOrEmpty(Group);
}
public string Group // the Name property
{
get { return _group; }
set
{
if(value !=_group)
{
_group = value;
RaisePropertyChanged("Group");
AddPersonCommand.RaiseCanExecuteChanged();
}
}
}
}
RaiseCanExecuteChanged не существует на интерфейсе ICommand. Можете ли вы опубликовать пример того, где вы создаете команду? – Bijington