方法 : バインディングの更新の通知を設定する
更新 : 2007 年 11 月
この例では、バインディングのバインディング ターゲット (ターゲット) プロパティまたはバインディング ソース (ソース) プロパティが更新されたときに通知を受け取る設定方法を示します。
使用例
バインディングのソースまたはターゲットが更新されるたびに、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
...
}
イベントのパラメータは、変更されたプロパティの詳細 (複数の要素に同じハンドラが結び付けられている場合は、種類や特定の要素など) を特定するために使用できます。これは、単一の要素に複数のプロパティがバインドされている場合に役立ちます。