PropertyBridge クラスは、System.Object 型の Source と Target という2つの依存プロパティを公開し、2つの値が等しくなるように保ちます。つまり、1つのプロパティの値が変更されると、他方のプロパティの値も同じ値に設定されます。この単純な仕組みにより、DependencyProperty であるプロパティのみを使用するように設計された WPF メカニズムで、DependencyProperty でないプロパティを使用できるようになります。次の例では、PropertyBridge クラスを使用する方法を示します。
2つの非依存プロパティを連結する:
ソースとして1つの非依存プロパティを持つ TwoWay 連結を Source プロパティに割り当て、ソースとして別の非依存プロパティを持つ TwoWay 連結を Target プロパティに割り当てます。これによって非依存プロパティが連結プロパティとして動作します。これは、INotifyPropertyChanged インターフェイスをサポートする非依存プロパティを公開しているクラスでのみ動作します。C1ScheduleStorage オブジェクトモデルの大部分のクラスがこれに当てはまります。
トリガ内から非依存プロパティ値を設定する:
ソースとして1つの非依存プロパティを持つ TwoWay または OneWayToSource 連結を Source プロパティに割り当て、Trigger の Setter を使って値を PropertyBridge の Target プロパティに割り当てます。この値は、Source に連結される非依存プロパティに割り当てられます。
多対多連結:
MultiBinding 連結を Source と Target に割り当てて、多対多連結を実現します。
ネストされたプロパティに値を割り当てる:
ネストしているプロパティを参照する Path で、ターゲットを TwoWay または OneWayToSource に設定します。次に、Source を割り当てます(直接、または Setter 内から)。ネストしているプロパティに、この値が割り当てられます。
直接アクセスできないオブジェクトのプロパティを割り当てる:
ネストしているプロパティへの値の割り当てと同様に、Target への連結で RelativeSource を使用して、TemplatedParent やビジュアルツリーの一部の親要素などの XAML で直接参照できない要素にプロパティの値を割り当てます。
PropertyBridge クラスは FrameworkElement から派生されます。また、これが正しく動作するには、やり取りする必要がある他の要素と共にビジュアルツリー内に配置される必要があります。FrameworkElement からの派生は意図的です。PropertyBridge をビジュアルツリーに含めることができ、これにより、連結が正しいコンテキストでプロパティに確立されます。たとえば、理論的には ResourceDictionary に PropertyBridge を置く選択肢もありますが、この場合は連結が動作しません。
PropertyBridge.Visibility プロパティは、デフォルトで Collapsed に設定されています。したがって、このオブジェクトは画面に表示されず、レイアウトの測定および配置処理の対象になりません。つまり、このプロパティは、配置先のビジュアルツリーのビジュアル表現を変更しません。