1

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

<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'都会被执行?

我看到的问题是,由于该标记扩展不是派生自DependencyObject,所以我不确定如何获得我想要的行为

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

4

1 回答 1

2

在您的数据源类上实现 INotifyPropertyChanged。

本指南提供了有关如何执行此操作的完整文档。

...但总而言之,假设您绑定到具有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 事件就会触发(假设它们是双向绑定)。因此,您可以向该事件添加处理程序并触发您喜欢的任何命令。

于 2013-06-15T12:10:38.553 回答