2016-05-03 5 views
0

私はthisの記事を見て、WPFの初心者です。私は非常に基本的な質問をしていると確信していますが、答えを見つけることはできません。ちょうど少なくとも正しい方向への動きは深く感謝されるでしょう。 私はwpfアプリケーションを作成し、次にTextBoxクラスを派生させ、その上に依存オブジェクトを定義しました。依存関係プロパティシステムは、どのオブジェクトインスタンスにpirticular依存関係プロパティ値が属するのかを知っています

public class TextBoxEx : TextBox 
{ 
    public string SecurityId 
    { 
     get 
     { 
      return (string)GetValue(SecurityIdProperty); 
     } 
     set 
     { 
      SetValue(SecurityIdProperty, value); 
     } 
    } 

    public static readonly DependencyProperty 
     SecurityIdProperty = DependencyProperty.Register("SecurityId", 
     typeof(string), typeof(TextBoxEx), 
     new PropertyMetadata("")); 
} 

私はこれを見ています。

public MainWindow() 
{ 
    InitializeComponent(); 

    TextBoxEx t1 = new TextBoxEx(); 
    t1.SecurityId = "abc"; 

    TextBoxEx t2 = new TextBoxEx(); 
    var secId = t2.SecurityId; 

} 

t2.SecurityIdから割り当てられたsecIdは ""ですが、私はそれが "abc"であると予想しています。

WPF依存関係プロパティシステムは、依存関係プロパティ値がどのオブジェクトインスタンスに属しているかを知っていますか? thisのパラメータがdpプロパティシステムに渡されないところがあるので、どのように知っていますか?

答えて

1

SecurityIdは、インスタンスメソッドDependencyObject.GetValue()DependencyObject.SetValue()を呼び出してインスタンス(すなわち、非静的)プロパティです。

あなたはどこかthisキーワードを確認したい場合は、次のようにプロパティを書くことができます:

public string SecurityId 
{ 
    get { return (string)this.GetValue(SecurityIdProperty); } 
    set { this.SetValue(SecurityIdProperty, value); } 
} 
+0

私は今あなたが言っていることを得ていると思います。ありがとう!! – VivekDev

関連する問題