- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
WPF->WPF MVVM项目模板创建了一个新的WPF MVVM应用程序。我创建了一个标记为“刷新已启用?”的复选框。在“刷新”按钮旁边,我想在单击时启用/禁用“刷新-6ren">
我通过VS2010中的在线模板->WPF->WPF MVVM项目模板创建了一个新的WPF MVVM应用程序。我创建了一个标记为“刷新已启用?”的复选框。在“刷新”按钮旁边,我想在单击时启用/禁用“刷新”按钮。我将复选框的 IsChecked
属性绑定(bind)到我称为 CanRefreshDate
的 aMainWindowViewModel
属性,它引发了 RaisePropertyChanged(()=>CanRefreshDate) ;
在其 setter 中。另外,在 MainWindowViewModel
中,我添加了新创建的 CanExecuteRefreshDate()
,它返回 CanRefreshDate
属性的 bool 值。但是,当我单击该复选框时,“刷新”按钮永远不会启用/禁用以匹配。解决此问题的正确方法是什么?这是模板中的疏忽还是什么?
这是我对模板代码的修改:
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;
}
我注意到模板在 DelegateCommand.cs 中的 RaiseCanExecuteChanged()
拼写错误 RasieCanExecuteChanged()
并对其进行了更改。我可以通过删除 RaiseCanExecuteChanged() 并修改
public event Handler CanExecuteChanged;
至:
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
但是,我想知道正确的解决方案是什么以及为什么该模板不起作用。我错过了什么,做错了什么还是什么?请创建一个新的解决方案并使用我所做的模板并告诉我发生了什么事!谢谢!
最佳答案
作者修复了该问题并于昨天发布了模板的 4.1 版本。
关于wpf - 使用VS2010在线模板 "WPF MVVM project template",CanExecuteChanged不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120756/
我可以使用 CanExecuteChanged 更改“可以执行”条件吗? 或者……它的用途是“什么”? 最佳答案 不,您不能使用它来更改可执行状态。它是参与ICommand 的事件和对象模式可以选择收
在我的 ViewModel 中,我有一个 ObservableCollection 的 Person 对象(实现了 INotifyPropertyChanged)和一个 SelectedPerson
我正在尝试 MVVM 模式基本级别,并在 ICommand CanExecute 更改时感到震惊。我有如下 XAML 绑定(bind): 命令: Public Class
我不知道如何使用 CanExecuteChangedEventManager在 MyCommand : ICommand 中。我尝试了以下但 value 是错误的类型: public event Ev
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
Icommand 包含两个方法和一个事件。 两个方法的作用很清楚,但是我无法理解ICommand中提供的事件是做什么的。 CanExecuteChanged 事件何时引发? 下面的解释在MSDN但是我
在我的 WPF UI 中,我使用了我在 xaml 中通过以下代码引用的 RoutedCommands: Command="viewModel:MessageListViewModel.DeleteMe
我从 Josh Smith 的 MVVM tutorial 得到以下代码. 任何人都可以快速解释这段代码的实际作用吗? public event EventHandler CanExecuteChan
我正在分析一个使用 Catel 作为 MVVM 框架的 WPF 应用程序,我已经看到在 ViewModel 中我有 2 个保留路径作为 现在我在附加到上下文菜单的行为中创建了这样的 RadMenuIt
我正在使用 MVVM-Light 并且我的中继命令运行良好,我刚刚读到我应该实现 CanExecuteChanged和 CanExecute .虽然我找不到一个很好的例子。 有没有人有一个很好的例子来
我的 Command-ViewModel 中是否缺少某些内容? public class Command : ICommand { public Command(Action
我想实现当文本框值更改时,我的添加按钮可用。 我将文本框与 viewModel 绑定(bind): 我的按钮: 在后面的 XAML 代码中,我将 DataContext 设置为我的 ViewMod
在用户进行一些修改后,我想从 DelegateCommand 重新触发 canExecute 功能。我该怎么做呢? 最佳答案 必须引发接口(interface) ICommand 的事件 CanExe
我给自己写了一个 SingleExecutionCommand(我还不确定那个名字。请随意推荐另一个,但这不是我的问题),它不允许在第一次执行之前再次按下按钮完成的。好吧,至少那是计划。 我想使用 C
我是一名优秀的程序员,十分优秀!