Files
egtbeamwall/EgtBEAMWALL.Optimizer/StrategyManager/StrategyManagerV.xaml.vb
T
Demetrio Cassarino c7b7aec302 -pulizia codice
-aggiunto selezione albero con un solo click
-sistemato assemblato quando si seleziona pezzo in produzione
2025-05-27 16:01:39 +02:00

55 lines
2.7 KiB
VB.net

Public Class StrategyManagerV
'Private Sub TreeViewItem_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
' If TypeOf sender IsNot TreeViewItem Then Return
' Dim TreeViewItem As TreeViewItem = DirectCast(sender, TreeViewItem)
' Dim TreeViewItemButton As Object = TreeHelperManager.FindVisualParent(Of Primitives.ToggleButton)(e.OriginalSource)
' Dim TreeViewItemParentNode As Object = TreeHelperManager.FindVisualParent(Of TreeViewItem)(sender)
' If Not IsNothing(TreeViewItemButton) OrElse Not IsNothing(TreeViewItemParentNode) Then Return
' TreeViewItem.IsExpanded = Not TreeViewItem.IsExpanded
'End Sub
Private Sub TreeViewItem_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
If TypeOf sender IsNot TreeViewItem Then Return
Dim treeViewItem As TreeViewItem = DirectCast(sender, TreeViewItem)
If TypeOf treeViewItem.DataContext IsNot StrategyFeature Then
Dim Topology As Topology = DirectCast(treeViewItem.DataContext, Topology)
Topology.CreateStrategyViews()
Topology.ActiveStrategyList_View.Refresh()
Topology.AvailableStrategyList_View.Refresh()
Else
Dim Feature As StrategyFeature = DirectCast(treeViewItem.DataContext, StrategyFeature)
For Each Topology As Topology In Feature.TopologyList
Topology.ActiveStrategyList_View.Filter = Function(item) False
Topology.AvailableStrategyList_View.Filter = Function(item) False
Topology.ActiveStrategyList_View.Refresh()
Topology.AvailableStrategyList_View.Refresh()
Next
End If
' Controlla se il clic è avvenuto sulla HEADER o sul TOGGLEBUTTON
Dim clickedElement As DependencyObject = e.OriginalSource
While Not IsNothing(clickedElement) AndAlso TypeOf clickedElement IsNot TreeViewItem
If TypeOf clickedElement Is Primitives.ToggleButton Then
' Se il ToggleButton è stato cliccato, espandi o chiudi
treeViewItem.IsExpanded = Not treeViewItem.IsExpanded
' Se il nodo è chiuso, togli la selezione
If Not treeViewItem.IsExpanded Then
treeViewItem.IsSelected = False
End If
e.Handled = True
Return
End If
clickedElement = VisualTreeHelper.GetParent(clickedElement)
End While
' Se il clic è sul nodo principale, espandi/chiudi
If clickedElement Is treeViewItem AndAlso Not treeViewItem.IsSelected Then
treeViewItem.IsExpanded = Not treeViewItem.IsExpanded
' Se il nodo è chiuso, togli la selezione
If Not treeViewItem.IsExpanded Then
treeViewItem.IsSelected = False
End If
End If
End Sub
End Class