2016-12-15 6 views

答えて

1

コードを記述せずにPropertyChangedイベントを発生させることはできますか? はい Fodyと呼ばれるコールを注入するサードパーティのライブラリを使用する必要があります。 https://github.com/Fody/PropertyChanged

あなたは少しコードを書くために喜んでいる場合、あなたは、基本クラスでこれを置くことができます(C#6のために、あなたはCallerMemberNameためSystem.Runtime.CompilerServicesが必要ですか?。)::あなたはでそれを見つけることができます

protected void OnPropertyChanged([CallerMemberName]string propertyName = "") 
{ 
    PropertyChanged?.Invoke(this, new PropertyChangedEventargs(propertyName)); 
} 

はそうあなたの財産セッターにあなただけの

set 
{ 
    backingField = value; 
    OnPropertyChanged(); 
} 
+0

何がありますか?この場合はどうしますか? PropertyChangedがnullの場合にInvokeが呼び出されないようにしますか? –

+1

@EstebanVerbel正確に。スレッドセーフです。 '?.Invoke'は、C#6でイベントを発生させるための好ましい方法です。左の引数がnullの場合、式を* return *にします。それ以降のコードは実行されません。 – BradleyDotNET

+0

清算していただきありがとうございます。 –

1

Fodyを使用すると、すべてのセッターで明示的に呼び出す必要はなく、属性を使用してINotifyPropertyChangedを呼び出すことができます。

[ImplementPropertyChanged] 
public class Person 
{   
    public string GivenNames { get; set; } 
    public string FamilyName { get; set; } 
} 
+0

を入れて、あなたの入力をありがとうございました。 –

関連する問題