Chcę posłuchać zmian w DependencyProperty. Ten kod działa, ale po każdej stronie reload z CustomControl jest metoda zwrotna nazywa wielokrotnie ...Właściwość zależności zmieniona wywołanie zwrotne - wielokrotne uruchamianie
public partial class CustomControl : UserControl
{
public CustomControl()
{
InitializeComponent();
}
public bool IsOpen
{
get { return (bool)GetValue(IsOpenProperty); }
set { SetValue(IsOpenProperty, value); }
}
public static readonly DependencyProperty IsOpenProperty =
DependencyProperty.Register("IsOpen", typeof(bool), typeof(CustomControl), new PropertyMetadata(IsOpenPropertyChangedCallback));
private static void IsOpenPropertyChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
Debug.WriteLine("Fire!");
}
}
Aktualizacja
ViewModel
private bool _isOpen;
public bool IsOpen
{
get { return this._isOpen; }
set { this.Set(() => this.IsOpen, ref this._isOpen, value); } // MVVM Light Toolkit
}
Zobacz
<local:CustomControl IsOpen="{Binding Path=IsOpen}" />
Próbka
-
- tap "Druga strona"
- tap "true" (spojrzeć na okna wyjściowego)
- wrócić
- tap "Druga strona"
- dotknij "false" (spójrz na okno wyjściowe)
Gdzie jest XAML? Czy masz powiązania na nieruchomości? –
Dodałem więcej informacji. –