在WPF中将事件绑定到属性,反之亦然

时间:2012-05-03 23:26:04

标签: c# wpf binding

我对绑定和WPF很新,但我已经能够用绑定做一些有趣的事情(至少对我有趣)

anyoine是否知道是否可以将事件(例如,SelectionChanged或Click事件等)绑定到属性(例如:IsChecked,IsEnabled等)?

我知道我可以使用Path属性和所有绑定属性。

1 个答案:

答案 0 :(得分:2)

如果要将事件绑定到命令,可以通过Attached Behavours完成。关于如何使用MVVM Light,请查看this blog。绑定到IsEnabled没有多大意义

他们给出的一个例子是:

<Button>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click" >
            <i:InvokeCommandAction Command="{Binding FooCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>

在ViewModel中

public MyViewModel()
{
    //set it as a toggle for example
    FooCommand = new RelayCommand( () => IsChecked = !IsChecked );
 }    

public ICommand FooCommand { get; private set; }

public bool  IsChecked
{
   get { return _isChecked; }
   set { _isChecked = value;
        RaisePropertyChanged("IsChecked"); }
}