WPF绑定命令

时间:2010-11-11 16:47:39

标签: wpf binding command

我有以下复选框:

<dxe:CheckEdit Margin="2,0" IsChecked="{Binding SelectedContact.isMajor,Mode=TwoWay,Converter={StaticResource CheckBoxNullToFalse}}">More than 18</dxe:CheckEdit>

这就是我想要实现的:当用户点击复选框时,我想调用一个函数,但也分配了isMajor字段。

我看到如何执行此操作的唯一方法是绑定到将执行两个操作的命令

有更简单的方法吗? 由于
约翰

2 个答案:

答案 0 :(得分:1)

使isMajor成为属性而不是字段,并在setter中调用方法

private bool _isMajor;
public bool IsMajor
{
    get { return _isMajor; }
    set
    {
        _isMajor = value;
        OnPropertyChanged("IsMajor");
        DoSomething();
    }
}

答案 1 :(得分:1)

老实说,使用Command是我遇到的第一件事。我假设dxe:CheckEdit是一些CheckBox变体 - 作为替代方案,您可能会发现ToggleButton很有用,具体取决于您正在寻找的行为。

我不确定你的意思是“直截了当”(最少代码,最容易理解等),但将IsChecked绑定到isMajor属性(根据@Thomas Levesque)和绑定到命令(例如RelayDelegate)以调用该函数提供了一种干净的方式来执行您想要的两件事而不会在代码中引入副作用,就像您调用时一样例如,属性设置器或Converter中的函数对其他开发人员来说并不明显。或者对你来说,当你从现在开始回归维持这一年。 :)