2013-02-27 1 views
3

Я создал новое WPF MVVM-приложение через интернет-шаблоны-> WPF в VS2010-> WPF MVVM-шаблоне проекта. Я создал флажок с надписью «Refresh Enabled»? рядом с кнопкой «Обновить», которую я хотел включить/отключить кнопку «Обновить» при нажатии. Я связал свой IsChecked свой ящик с aMainWindowViewModel имуществом, которое я назвал CanRefreshDate, и он поднимает RaisePropertyChanged(()=>CanRefreshDate); в своем сеттере. Также в MainWindowViewModel я добавил свой недавно созданный CanExecuteRefreshDate(), который возвращает свойство bool CanRefreshDate. Однако, когда я нажимаю на этот флажок, кнопка «Обновить» никогда не включается/отключается для соответствия. Каков правильный способ исправить это, и это надзор в шаблоне или что?Использование VS2010 онлайн-шаблона «Шаблон проекта WPF MVVM», CanExecuteChanged не работает?

Вот мои изменения в код шаблона:

Xaml:

<CheckBox Content="Refresh Enabled?" 
      IsChecked="{Binding CanRefreshDate}"/> 

MainWindowViewModel.cs:

private bool _CanRefreshDate; 
public bool CanRefreshDate 
{ 
    get { return _CanRefreshDate; } 
    set 
    { 
     if (_CanRefreshDate != value) 
     { 
      _CanRefreshDate = value; 
      RaisePropertyChanged(() => CanRefreshDate); 
     } 
    } 
} 

public ICommand RefreshDateCommand { get { return new DelegateCommand(OnRefreshDate, CanExecuteRefreshDate); } } 

private bool CanExecuteRefreshDate() 
{ 
    return CanRefreshDate; 
} 

Я заметил, что шаблон был RaiseCanExecuteChanged() опечатка RasieCanExecuteChanged() в DelegateCommand.cs и изменил это. Я был в состоянии получить все работает, удалив RaiseCanExecuteChanged() и изменения

public event Handler CanExecuteChanged; 

к:

public event EventHandler CanExecuteChanged 
{ 
    add { CommandManager.RequerySuggested += value; } 
    remove { CommandManager.RequerySuggested -= value; } 
} 

Однако, я хотел бы знать, что правильное решение для этого и почему шаблон doesn` т работы. Я что-то упустил, что-то не так, что ли? Создайте новое решение и используйте шаблон, который я сделал, и расскажите, что происходит! Благодаря!

+0

автор ответил и выпустил версию 4.1 этого встроенного шаблона, который исправляет проблему –

ответ

0

Автор исправил проблему и выпустил версию 4.1 шаблона вчера.

+0

yep он отправил мне по электронной почте, когда он исправил ее и сказал спасибо за указание на это –

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

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