首页 > 解决方案 > WPF prism:在切换开关上使用命令

问题描述

我想将委托命令与切换开关时触发的 Horizo​​ntaltoggleswitch 一起使用。我使用带有按钮和文本框的委托命令(按下回车键时触发事件),但我找不到如何使用切换开关解决这个问题?我试过这个: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);

         ...
        

但我真的不知道如何处理事件。谢谢你的任何想法!

标签: wpfcommandprismtoggleswitch

解决方案


该命令在这里完全是多余的。该物业应该在这里做所有事情。

提醒:属性不仅仅是一个具有PropertyChanged...的字段

private bool _substrateValveOpen;
public bool SubstrateValveOpen
{
    get => _substrateValveOpen;
    set
    {
        if (value && !_substrateValveOpen && !CanSubstrate())
            return;
        if (SetProperty(ref _substrateValveOpen, value) && value)
            Substrate();
    }
}

推荐阅读