private static void AddInitial(ObservableCollection <OrgRoleDTO> source, RoleSelector ms) { if (source != null && source.Count > 0) { MultiSelectItem <OrgRoleDTO> tempSelction = new MultiSelectItem <OrgRoleDTO>() { Items = new ObservableCollection <OrgRoleDTO>() { source.First() }, CurrentItem = source.First() }; if (source.First().ChildRoles.Count > 0) { ms.SetValue(SelectionListProperty, new ObservableCollection <MultiSelectItem <OrgRoleDTO> >() { tempSelction, new MultiSelectItem <OrgRoleDTO>() { IsButton = true } });; } else { ms.SetValue(SelectionListProperty, new ObservableCollection <MultiSelectItem <OrgRoleDTO> >() { tempSelction });; } } }
private static void AddCommandHandler(object sender, ExecutedRoutedEventArgs e) { RoleSelector ms = sender as RoleSelector; ms.ExecuteSelctionChangedCallBack = false; ObservableCollection <MultiSelectItem <OrgRoleDTO> > tempSelecItems = ms.GetValue(SelectionListProperty) as ObservableCollection <MultiSelectItem <OrgRoleDTO> >; OrgRoleDTO LastItem = tempSelecItems[tempSelecItems.Count - 2].CurrentItem; if (LastItem != null) { MultiSelectItem <OrgRoleDTO> tempSelction = new MultiSelectItem <OrgRoleDTO>() { Items = new ObservableCollection <OrgRoleDTO>(LastItem.ChildRoles), CurrentItem = LastItem.ChildRoles.First() }; tempSelecItems.Insert(tempSelecItems.Count - 1, tempSelction); ms.SetValue(SelectionProperty, LastItem.ChildRoles.First()); if (tempSelction.CurrentItem.ChildRoles.Count == 0) { tempSelecItems.RemoveAt(tempSelecItems.Count - 1); } ms.SetValue(SelectionListProperty, tempSelecItems); } ms.ExecuteSelctionChangedCallBack = true; }
public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (item == null) { return(null); } if (item is MultiSelectItem <OrgRoleDTO> ) { MultiSelectItem <OrgRoleDTO> tempItem = item as MultiSelectItem <OrgRoleDTO>; if (tempItem.IsButton) { return(AddButtonTemplate); } else { return(ItemsTemplate); } } return(null); }