バインド可能なプロパティのために二回呼び出されている:OnPropertyChangedを私はそうのようなバインド可能なプロパティを作成し、Xamarinフォームで
public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create("SelectedItem", typeof(MyItem), typeof(MyGrid), default(MyItem));
public MyItem SelectedItem
{
get { return (MyItem)GetValue(SelectedItemProperty); }
set { SetValue(SelectedItemProperty, value); }
}
は、ここに私のコンストラクタです:
public MyView()
{
InitializeComponent();
PropertyChanged += OnPropertyChanged;
}
protected void OnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
{
if (propertyChangedEventArgs.PropertyName == "SelectedItem")
{
// called twice
}
}
プロパティ変更イベントである理由を誰かが説明することができます焼成2回?バインド可能なプロパティの定義に変更されたハンドラを作成すると、ハンドラはとなります。
public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create("SelectedItem", typeof(MyItem), typeof(MyGrid), default(MyItem), null, SelectedItemChanged);
私はこの問題がコードビハインドにのみ存在することに気付きました。 XAMLでプロパティを直接設定した場合、プロパティ変更イベントはに一度発生します。