【发布时间】:2016-04-15 01:21:36
【问题描述】:
我仍在学习 MVVM,使用 INotifyPropertyChanged 和 ICommand,如果这很明显,很抱歉。
我有一个继承 ICommand 的 SimpleCommand 类
class SimpleCommand : ICommand
{
private Action _action;
#region ICommand
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
this._action();
}
#endregion
public SimpleCommand(Action action)
{
_action = action;
}
}
而我是当用户调用时:
<Button Command="{Binding ChangePaneOpen }" .../>
应更改变量 PaneOpen:
public bool PaneOpen
{
get { return _paneOpen; }
set
{
_paneOpen = value;
OnPropertyChanged("PaneOpen");
}
}
public ICommand ChangePaneOpen
{
get
{
return new SimpleCommand(() => { PaneOpen = !PaneOpen; });
}
}
改变绑定值:
<SplitView IsPaneOpen="{Binding PaneOpen, Mode=OneWay}" ...>
....
</SplitView>
但是,由于某种原因,只有每第二次点击(除了我第一次点击按钮)都会被做出反应。这不是双击,因为我可以在两次点击之间有很大的停顿。
我在这里做错了什么?
如果您需要有关代码的更多信息,请询问我,我会尽力提供!
编辑: 关闭SplitView 总是通过单击完成(所以PaneOpen = false 总是反应正确,很奇怪,但打开SplitView 总是需要双击/点击(除了第一次点击按钮))
【问题讨论】:
标签: .net wpf mvvm data-binding uwp