/// <summary> /// Handles changes to the BindableSelection property. /// </summary> /// <param name="d"> /// The <see cref="DependencyObject" /> on which /// the property has changed value. /// </param> /// <param name="e"> /// Event data that is issued by any event that /// tracks changes to the effective value of this property. /// </param> private static void OnBindableSelectionChanged( DependencyObject d, DependencyPropertyChangedEventArgs e) { var oldBindableSelection = e.OldValue; var newBindableSelection = GetBindableSelection(d); if (oldBindableSelection != null) { var handler = GetBindableSelectionHandler(d); SetBindableSelectionHandler(d, null); handler.Detach(); } if (newBindableSelection != null) { var handler = new ListViewBindableSelectionHandler( (ListViewBase)d, newBindableSelection); SetBindableSelectionHandler(d, handler); } }
/// <summary> /// Sets the BindableSelectionHandler property. This dependency property /// indicates BindableSelectionHandler for a ListView - used to manage synchronization of BindableSelection and /// SelectedItems. /// </summary> public static void SetBindableSelectionHandler( DependencyObject d, ListViewBindableSelectionHandler value) { d.SetValue(BindableSelectionHandlerProperty, value); }