WPF棱镜:在切换开关上使用命令
WPF prism: using command on toggleswitch
我想将委托命令与 Horizontaltogglesswitch 一起使用,该开关在切换开关时触发。我将委托命令与按钮一起使用,也与文本框一起使用(按下回车键时触发事件),但我找不到如何使用切换开关解决这个问题?我试过这个:
XAML:
<toggleSwitch:HorizontalToggleSwitch CheckedContent="Open" UncheckedContent="Closed" IsChecked="{Binding SubstrateValveOpen,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<toggleSwitch:HorizontalToggleSwitch.InputBindings>
<KeyBinding Command="{Binding SubstrateCommand}" Key="??"/>
</toggleSwitch:HorizontalToggleSwitch.InputBindings>
</toggleSwitch:HorizontalToggleSwitch>
视图模型:
private bool _substrateValveOpen;
public bool SubstrateValveOpen
{
get => _substrateValveOpen;
set => SetProperty(ref _substrateValveOpen, value);
}
public DelegateCommand SubstrateCommand => new DelegateCommand(Substrate, CanSubstrate);
...
但我真的不知道如何处理该事件。
谢谢你的想法!
这里的命令完全多余。 属性 应该在这里做所有事情。
提醒:属性 是 而不是 只是一个 PropertyChanged
...
的字段
private bool _substrateValveOpen;
public bool SubstrateValveOpen
{
get => _substrateValveOpen;
set
{
if (value && !_substrateValveOpen && !CanSubstrate())
return;
if (SetProperty(ref _substrateValveOpen, value) && value)
Substrate();
}
}
我想将委托命令与 Horizontaltogglesswitch 一起使用,该开关在切换开关时触发。我将委托命令与按钮一起使用,也与文本框一起使用(按下回车键时触发事件),但我找不到如何使用切换开关解决这个问题?我试过这个: XAML:
<toggleSwitch:HorizontalToggleSwitch CheckedContent="Open" UncheckedContent="Closed" IsChecked="{Binding SubstrateValveOpen,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<toggleSwitch:HorizontalToggleSwitch.InputBindings>
<KeyBinding Command="{Binding SubstrateCommand}" Key="??"/>
</toggleSwitch:HorizontalToggleSwitch.InputBindings>
</toggleSwitch:HorizontalToggleSwitch>
视图模型:
private bool _substrateValveOpen;
public bool SubstrateValveOpen
{
get => _substrateValveOpen;
set => SetProperty(ref _substrateValveOpen, value);
}
public DelegateCommand SubstrateCommand => new DelegateCommand(Substrate, CanSubstrate);
...
但我真的不知道如何处理该事件。 谢谢你的想法!
这里的命令完全多余。 属性 应该在这里做所有事情。
提醒:属性 是 而不是 只是一个 PropertyChanged
...
private bool _substrateValveOpen;
public bool SubstrateValveOpen
{
get => _substrateValveOpen;
set
{
if (value && !_substrateValveOpen && !CanSubstrate())
return;
if (SetProperty(ref _substrateValveOpen, value) && value)
Substrate();
}
}