1

2つのWPFクラス間で共有される読み取り専用の依存関係プロパティがあります。そこで、このプロパティを共有プロパティにしました。このプロパティをXAMLにバインドしている間、デフォルト値を取り、更新できません。ただし、このプロパティのメインオーナーを使用すると、その値を更新できます。

それで、あなたのアドバイスは何ですか?

public  class A
{
    private static readonly DependencyPropertyKey XPropertyKey =
        DependencyProperty.RegisterReadOnly("X", 
        typeof(Point), typeof(A), 
        new FrameworkPropertyMetadata(new Point(0, 0),  
        FrameworkPropertyMetadataOptions.Inherits | 
        FrameworkPropertyMetadataOptions.AffectsRender));

    public static readonly DependencyProperty XProperty =  
        RelativeMousePointPropertyKey.DependencyProperty;

    public Point X
    {
        get { return (Point)GetValue(XProperty); }
        set { SetValue(XProperty, value); }
    }

    public void SetRelativeMousePoint(Point point)
    {
        SetValue(XPropertyKey, point);
    }
}

public class B
{ 
    //I use this class for binding
    public static readonly DependencyProperty XProperty = 
        A.XProperty.AddOwner(typeof(B));

    public Point X
    {
        get { return (Point)GetValue(X); }
    }
}
4

0 に答える 0