绑定更新时执行命令?

时间:2013-06-15 11:40:24

标签: wpf binding command

触发绑定时是否可以执行命令?例如给出:

<MultiBinding Converter="{StaticResource someConvertor}">
    <Binding Path="FirstName"/>
    <Binding Path="LastName"/>
</MultiBinding>

我想做类似的事情:

<MultiBinding Converter="{StaticResource someConvertor}" TriggerCommand="{Binding SomeCommand}">
    <Binding Path="FirstName"/>
    <Binding Path="LastName"/>
</MultiBinding>

这样,只要FirstNameLastName发生变化,就会执行'SomeCommand'吗?

我看到的问题是,因为markupextension不是来自DependencyObject,所以我不确定如何得到我想要的行为

基本上我有一些代码不能很好地使用绑定,这样的东西会非常有用。

1 个答案:

答案 0 :(得分:2)

在数据源类上实现INotifyPropertyChanged。

This guide提供了有关如何执行此操作的完整文档。

...但总的来说,我们假设您使用属性FirstName和LastName绑定到列表

Public Class People
Implements System.ComponentModel.INotifyPropertyChanged
private _firstName as String
private _lastName as String

  Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged

Public Property FirstName As String
Get
Return _firstName
End Get
Set(value As String)
_firstName = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("FirstName"))
End Set
End Property

Public Property LastName As String
Get
Return _lastName
End Get
Set(value As String)
_lastName = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("LastName"))
End Set
End Property

只要在数据绑定控件中更改了值,就会触发PropertyChanged事件(假设它们是双向绑定)。因此,您可以为该事件添加处理程序并触发您喜欢的任何命令。