【问题标题】:WPF prism: using command on toggleswitchWPF prism:在切换开关上使用命令
【发布时间】:2020-11-19 00:14:11
【问题描述】:

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

         ...
        

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

【问题讨论】:

  • 您的 ,UpdateSourceTrigger=PropertyChanged 毫无意义。选中的切换按钮或复选框将在您单击后立即转移到视图模型。 Textbox.text 通常是您唯一需要的时间。

标签: wpf command prism toggleswitch


【解决方案1】:

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

提醒:一个属性只是一个带有PropertyChanged的字段...

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

【讨论】:

    猜你喜欢
    • 2012-10-31
    • 2011-01-15
    • 1970-01-01
    • 2010-09-10
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    相关资源
    最近更新 更多