バインディングで以下のようなバインディングをするとします。
<GRID DataContext="{Binding Path=R田中一郎}">
<TEXTBOX Text="{Binding Converter={StaticResource 名前抜き出しコンバータ}}" />
この場合TextにはR田中一郎オブジェクト自体がバインドされて、コンバータを通して表示されることになります。
たとえば
"R田中一郎 17歳"
この場合R田中一郎を表現しているわんくまメンバーくらすに何らかかの変化が入った場合には、このテキストボックスの内容は更新されません。(18歳になったとか)
これはFirePropetyChanged("")が効果がないためです。
以下のような回避ロジックが必要になります。これはバインドするすべてのオブジェクトに仕込むべきです。
システム全体で共通のインターフェイスとしてもいいくらいです。
public わんくまメンバー me{get{return this;}}
public 年齢{get{return _a;}set{_a=value;FirePropertyChanged("年齢");}}
private void FirePropertyChanged(string PropertyName){if ( this.ProperyChanged != null ) {
this.PropertyChanged(new PropertyChangedArgs(PropertyName));
this.PropertyChanged(new PropertyChangedEventArgs("me"));
}}
<GRID DataContext="{Binding Path=R田中一郎}">
<TEXTBOX Text="{Binding Path=me, Converter={StaticResource 名前抜き出しコンバータ}}">
フリーハンドにつきミスってたらごめんなさい