Files
DP44/DataPRO/Modules/Menu/HamburgerMenu/View/HamburgerMenuView.xaml.cs
2026-04-17 14:55:32 -04:00

106 lines
3.9 KiB
C#

using DTS.Common.Interface.Menu.HamburgerMenu;
using System.Windows.Controls;
// ReSharper disable CheckNamespace
namespace HamburgerMenu
{
/// <inheritdoc cref="IHamburgerMenuView" />
/// <summary>
/// Interaction logic for HamburgerMenuView.xaml
/// </summary>
public partial class HamburgerMenuView : IHamburgerMenuView
{
public HamburgerMenuView()
{
InitializeComponent();
}
private void Hamburger_Click(object sender, System.Windows.RoutedEventArgs e)
{
var vm = (IHamburgerMenuViewModel)DataContext;
var cm = vm.GetContextMenu();
cm.PlacementTarget = sender as Button;
cm.IsOpen = true;
}
/*
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
{
var searchTerm = (string)e.OriginalSource;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
var viewModel = (IHardwareListViewModel)DataContext;
viewModel.Filter(columnTag, searchTerm);
}
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
{
var vm = (IHardwareListViewModel)DataContext;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ??
Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag ??
(e.OriginalSource as GridViewColumnHeader)?.Tag;
vm?.Sort(columnTag, true);
}
private void MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (!(sender is ListView lv))
{
return;
}
var index = GetCurrentIndex(e.GetPosition, lv);
if (index >= 0 && index < lv.Items.Count)
{
var vm = (IHardwareListViewModel)lv.DataContext;
vm.MouseDoubleClick(index);
}
}
private delegate Point GetPositionDelegate(IInputElement element);
private int GetCurrentIndex(GetPositionDelegate getPosition, ListView lv)
{
var index = -1;
for (var i = 0; i < lv.Items.Count; i++)
{
var item = GetListViewItem(i, lv);
if (item == null)
continue;
if (IsMouseOverTarget(item, getPosition))
{
index = i;
break;
}
}
return index;
}
private static ListViewItem GetListViewItem(int index, ListView lv)
{
return lv.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
}
private static bool IsMouseOverTarget(Visual target, GetPositionDelegate getPosition)
{
var bounds = VisualTreeHelper.GetDescendantBounds(target);
var mousePos = getPosition((IInputElement)target);
return bounds.Contains(mousePos);
}
private void TreeviewButton_Click(object sender, RoutedEventArgs e)
{
if( !(sender is Control control)){ return; }
if( !(control.DataContext is IHardware hardware)){ return; }
if( !(DataContext is IHardwareListViewModel hardwareListViewModel)){ return; }
SLICE6TreeViewPopup.IsOpen = false;
hardwareListViewModel.SLICE6TreeView.DataContext = hardwareListViewModel;
SLICE6TreeViewPopup.PlacementTarget = control;
SLICE6TreeViewPopup.Child = null;
hardwareListViewModel.LoadTreeView(hardware.SerialNumber);
SLICE6TreeViewPopup.Child = (UIElement)hardwareListViewModel.SLICE6TreeView;
SLICE6TreeViewPopup.IsOpen = true;
SLICE6TreeViewPopup.PlacementTarget = control;
}*/
}
}