0

開発中のwpfコントロールがあります。

このコントロールには、別のコントロールが含まれ、カプセル化されています。

内部コントロールのプロパティを、コントロールを使用するウィンドウに公開したいと思います。また、このプロパティが変更されたときに内部コントロールがロジックを実行するようにします。

助言がありますか?

4

2 に答える 2

2

内部コントロールと外部コントロールの両方で、依存関係プロパティを定義する必要があります。外側のコントロールのテンプレートには内側のコントロールが含まれている必要があり、プロパティをまとめてバインドする必要があります。

<local:InnerControl SomePropertyOnInnerControl="{TemplateBinding SomePropertyOnOuterControl}"/>

これにより、両方のコントロールが独立して使用でき、互いに分離されます。プロパティは、そのコントロールでの用途に応じて名前を付けることができます。たとえば、内側のコントロールは のように呼び出しText、外側のコントロールは のように特定の目的で使用しCustomerNameます。

于 2009-09-03T13:57:04.840 に答える
0

依存関係プロパティの更新は、DependencyProperty の一部として定義されているプロパティ メタデータを介して処理されます。(既存の DP に追加することもできますが、それは別のトピックです。)

メタデータを使用して DependencyProperty を定義します。

public static readonly DependencyProperty MyValueProperty =
    DependencyProperty.Register("MyValue", typeof(object), typeof(MyControl), 
    new UIPropertyMetadata(null, new PropertyChangedCallback(MyValue_PropertyChanged)));

次に、コールバックを実装します。

private static void MyValue_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    MyControl c = (MyControl)d;
    c.DoSomething();
}
于 2009-09-03T14:16:15.123 に答える