2017-01-05 15 views
1

(これについて質問されていることは知っていますが、私の質問でわかるように、私は成功していないソリューションを試したと思います)。WPF Textbox Text Update

単純に、テキストボックス内のテキストをビューモデルにバインドしようとしています。

ビューモデルにおけるコード:

public class MainClass :INotifyPropertyChanged 
{ 
... 
public event PropertyChangedEventHandler PropertyChanged;       
protected void onPropertyChanged ​(string propertyName)   
{ 
    var handler = PropertyChanged; 
    if (handler != null) { 
     handler(this,  new PropertyChangedEventArgs(propertyName)); 
    } 
} 
private string _Stuff ="Original Value"; 
public string Stuff { 
    get { return _Stuff;  } 
    private set { 
     if (value != _Stuff) 
     { 
      _Stuff = value; 
      Method(); 
      OnPropertyChanged("Stuff"); 
     } 
    } 
} 
} 

とXAML

今すぐ
<TextBox Text="{Binding Stuff,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> 
</TextBox> 

、片道動作しないバインディング - つまり、XAMLを最初に初期化されるときに、テキストボックスが人口であります「元の価値」と比較します。しかし、ボックスの値を変更すると(たとえフォーカスが失われても)、フィールドは更新されません(最初にメソッドが呼び出されず、デバッガを使用すると、値は変更されていません)。

私は間違って何をしていますか?

編集:コントローラでコンテキストが設定されていることを忘れていて、明らかに機能しています。なぜなら、バインディングが一方的に機能しているからです。

答えて

3

あなたの問題はここにあるかもしれない:

public string Stuff { 
    get { return _Stuff; } 
    private set { 
     if (value != _Stuff) 
     { 
      _Stuff = value; 
      Method(); 
      OnPropertyChanged("Stuff"); 
     } 
    } 
} 

あなたのセッターはprivateあり、privateを削除し、それが動作するはずです。

+0

私は鉱山を保存したので、あなたは素晴らしい日を願っています – Sherz

+0

ありがとう、幸せに助けて! :-) –