用户编程的键绑定

时间:2018-08-29 14:56:34

标签: c# wpf key-bindings

请注意,这是我的previous question的后续行动。

我实现了一个包含键绑定以及“表单”的类,以允许用户更改键绑定。这行得通-绑定键已更新,可以执行适当的命令。但是,这非常繁琐且效率低下。基本上,我已经为KeyModifier的属性创建了一个属性:

private Key _changeBackgroundKey;
/// <summary>
/// Key to change the color of the background
/// </summary>
public Key ChangeBackgroundKey
{
    get { return _changeBackgroundKey; }
    set
    {
        if (_changeBackgroundKey == value)
            return;

        _changeBackgroundKey = value;
        OnPropertyChange(nameof(ChangeBackgroundKey));
    }
}

private ModifierKeys _changeBackgroundModifier;
/// <summary>
/// Key modifier to change the color of the background
/// </summary>
public ModifierKeys ChangeBackgroundModifier
{
    get { return _changeBackgroundModifier; }
    set
    {
        if (_changeBackgroundModifier == value)
            return;

        _changeBackgroundModifier = value;
        OnPropertyChange(nameof(ChangeBackgroundModifier));
    }
}

其中OnPropertyChange实现INotifyPropertyChanged

XAML已绑定:

<KeyBinding Key="{Binding ChangeBackgroundKey}" Modifiers="{Binding ChangeBackgroundModifier}" Command="{Binding Settings.ChangeBackgroundColorCommand}"/>

这是针对我要实现的 EACH 键绑定完成的-我必须为KeyModifierKeys创建一个属性,将它们绑定到XAML中,然后相应地更新逻辑。有没有更好/更有效的方法?虽然我的虚拟项目仅使用四个键绑定,但我的实际应用程序使用了更多键绑定。

0 个答案:

没有答案