Hi to all,
I would avoid that user click single item of group.
Sequence to reproduce behaviour:
- Group more items
- Unselect group
- Click on group and group id selected
- Click again on single item (of group) and selected item is only item that I clicked.
I would that step no. 4 did not have any effect.
To highlight selected items, I have write code into SelectionChanged event, where I change background and foreground of selected item.
01.private void topRadDiagram_SelectionChanged(object sender, SelectionChangedEventArgs e)02.{03. //Deselezione degli oggetti04. foreach (var item in e.RemovedItems)05. {06. if (item is RadDiagramShape deselectedItem)07. {08. deselectedItem.Background = ColorHelper.IMBALLO;09. deselectedItem.Foreground = ColorHelper.IMBALLO_TITLE;10. 11. //Aggiorna il 3D12. var macchina = (ModelloCommerciale)deselectedItem.Tag;13. var macchina3D = macchina.Oggetto3D;14. macchina3D.Material = new DiffuseMaterial(ColorHelper.IMBALLO_TRASPARENTE);15. macchina3D.BackMaterial = new DiffuseMaterial(ColorHelper.IMBALLO_TRASPARENTE);16. }17. }18. 19. //Selezione degli oggetti20. foreach (var item in e.AddedItems)21. {22. if (item is RadDiagramShape selectedItem)23. {24. selectedItem.Background = ColorHelper.IMBALLO_SELEZIONATO;25. selectedItem.Foreground = ColorHelper.IMBALLO_TITLE_SELEZIONATO;26. 27. //Aggiorna il 3D28. var macchina = (ModelloCommerciale)selectedItem.Tag;29. var macchina3D = macchina.Oggetto3D;30. macchina3D.Material = new DiffuseMaterial(ColorHelper.IMBALLO_SELEZIONATO);31. macchina3D.BackMaterial = new DiffuseMaterial(ColorHelper.IMBALLO_SELEZIONATO);32. 33. //Gesione trasparenza, è necessario per poter vedere trasparenti gli altri oggetti 3D34. //bisogna portare da index = 0 gli oggetti selezionati35. 36. //Rimuovo l'oggetto 3D attuale37. this.oggettiModel3DGroup.Children.Remove(macchina3D);38. //Reinserisco l'oggetto 3D con index = 039. this.oggettiModel3DGroup.Children.Insert(0, macchina3D);40. }41. }