Share via


方法: バインディングの更新の通知を設定する

この例では、バインドのバインディング ターゲット (ターゲット) またはバインディング ソース (ソース) のプロパティが更新されたときに通知するように設定する方法を示します。

Windows Presentation Foundation (WPF) は、バインディング ソースまたはターゲットが更新されるたびにデータ更新イベントを発生させます。 内部的には、バインドされたデータが変更されたため、更新する必要があることをユーザーインターフェイス (UI) に通知するために、このイベントが使用されます。 これらのイベントを、一方向または双方向のバインドで適切に機能させるには、データ クラスを INotifyPropertyChanged インターフェイスを使用して実装する必要があります。 詳細については、「プロパティの変更通知を実装する」を参照してください。

バインドで NotifyOnTargetUpdated プロパティまたは NotifyOnSourceUpdated プロパティ (またはその両方) を true に設定します。 このイベントをリッスンするために提供するハンドラーは、変更を通知する要素に直接アタッチするか、コンテキスト内の何かが変更されたことを認識する場合は、全体的なデータ コンテキストにアタッチする必要があります。

ターゲットのプロパティが更新されたときの通知を設定する方法の例を次に示します。

<TextBlock Grid.Row="1" Grid.Column="1" Name="RentText"
           Text="{Binding Path=Rent, Mode=OneWay, NotifyOnTargetUpdated=True}"
           TargetUpdated="OnTargetUpdated"/>

その後、EventHandler<T> デリゲート (この例では OnTargetUpdated) に基づいて、イベントを処理するハンドラーを割り当てることができます。

private void OnTargetUpdated(object sender, DataTransferEventArgs args)
{
    // Handle event
}
Private Sub OnTargetUpdated(sender As Object, e As DataTransferEventArgs)
    ' Handle event
End Sub

イベントのパラメーターを使用して、変更されたプロパティの詳細 (型や、複数の要素に同じハンドラーがアタッチされている場合の特定の要素など) を確認できます。これは、1 つの要素に複数のバインドされたプロパティがある場合に役に立つ可能性があります。

関連項目