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;
        }
Ejemplo n.º 3
0
        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);
        }