private void ListOption_AddButtonClick(object sender, RoutedEventArgs args) { IListOptionViewModel model = GetEventSourceItem(args) as IListOptionViewModel; try { model.AddItem(); } catch (ItemAlreadyExistsException e) { MessageBox.Show(e.Message); } }
private void ListOption_RemoveButtonClick(object sender, RoutedEventArgs args) { ListBoxItem container = lstOptions.GetEventSourceElement <ListBoxItem>(args); IListOptionViewModel model = GetEventSourceItem(args) as IListOptionViewModel; DataTemplateKey key = new DataTemplateKey(model.GetType()); DataTemplate template = FindResource(key) as DataTemplate; ContentPresenter presenter = container.FindVisualChild <ContentPresenter>(); ListBox list = template.FindName("lstItems", presenter) as ListBox; IList foo = list.SelectedItems; object[] removeItems = (from object f in foo select f).ToArray(); model.RemoveItems(removeItems); }