我是 WPF 的新手,正在尽力遵循 MVVM 按钮我正在努力解决当前的问题 我有一个 View 模型类
public class MainViewModel
{
private bool _Reset;
public bool Reset{ get{ return _Reset;} set {_Reset = value;} }
...
}
现在我想绑定(bind)一个按钮,这样当我按下它时 _Reset 为真,当我释放它时 _Reset 为假 我觉得命令模式对于简单的开/关有很多工作
有没有办法将按钮的 IsPressed 绑定(bind)到我的数据上下文中的属性
我想做的尽可能简单,因为我有十几个按钮都在做其他属性的事情
最佳答案
所以您需要做的是导入 System.Windows.Interactivity
。转到引用,添加引用、程序集、扩展。你会在那里找到它。接下来将其添加到您的项目中
xmlns:inter="http://schemas.microsoft.com/expression/2010/interactivity"
您现在可以使用 PreviewMouseLeftButtonDown
和 PreviewMouseLeftButtonUp
事件。
<Button Content="Some Button">
<inter:Interaction.Triggers>
<inter:EventTrigger EventName="PreviewMouseLeftButtonDown">
<inter:InvokeCommandAction Command="{Binding ButtonDown}"/>
</inter:EventTrigger>
<inter:EventTrigger EventName="PreviewMouseLeftButtonUp">
<inter:InvokeCommandAction Command="{Binding ButtonUp}"/>
</inter:EventTrigger>
</inter:Interaction.Triggers>
</Button>
public class MainViewModel : ViewModelBase
{
public MainViewModel()
{
ButtonDown = new RelayCommand(OnButtonDown);
ButtonUp = new RelayCommand(OnButtonUp);
}
public RelayCommand ButtonDown { get; set; }
public RelayCommand ButtonUp { get; set; }
private void OnButtonUp()
{
Debug.WriteLine("Button Released");
}
private void OnButtonDown()
{
Debug.WriteLine("Button Pressed");
}
}
关于c# - WPF 按钮按下/释放绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042512/