次の方法で共有


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

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

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"/>

その後、EventHandlerT デリゲートに基づいてハンドラーを割り当て、この例では OnTargetUpdated を して、イベントを処理できます。

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

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

関連項目