private static void OnSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var multiSelector = d as MultiSelector; if (multiSelector == null) { return; } var binder = (SelectedItemsBinder)multiSelector.GetValue(SelectedItemsBinderProperty); var selectedItems = e.NewValue as IList; if (selectedItems != null) { if (binder == null) { binder = new SelectedItemsBinder(multiSelector); } binder.SelectedItems = selectedItems; } else if (binder != null) { binder.Dispose(); } }
public MainWindow() { InitializeComponent(); _viewModel = (MainVM)DataContext; var binder = new SelectedItemsBinder(wordsListBox, _viewModel.SelectedWords, _viewModel.FilterSentencesByWords); binder.Bind(); }
private static void SelectedItemsChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) { if (target is ListBox listBox) { if (_elementToBinder.TryGetValue(listBox, out var oldBinder)) { oldBinder.Unbind(); } var newBinder = new SelectedItemsBinder(listBox, args.NewValue as IList); newBinder.Bind(); _elementToBinder[listBox] = newBinder; } }
private static void SetSelectedValueBinder(DependencyObject obj, SelectedItemsBinder items) { obj.SetValue(SelectedValueBinderProperty, items); }