Files
DP44/DataPRO/Modules/RegionOfInterest/RegionOfInterestChannels/View/RegionOfInterestChannelsView.xaml.cs

48 lines
2.1 KiB
C#
Raw Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Common.Controls;
using DTS.Common.Interface.RegionOfInterest.RegionOfInterestChannels;
using DTS.Common.Utils;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace RegionOfInterestChannels
{
/// <summary>
/// Interaction logic for RegionOfInterestChannelsView.xaml
/// </summary>
public partial class RegionOfInterestChannelsView : IRegionOfInterestChannelsView
{
public RegionOfInterestChannelsView()
{
InitializeComponent();
}
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
{
var vm = (IRegionOfInterestChannelsViewModel)DataContext;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag ??
(sender as GridViewColumnHeaderSelectable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSelectable>((DependencyObject)e.OriginalSource, null)?.Tag;
vm?.Sort(columnTag, true);
}
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
{
if (!(sender is TextBlock tb)) return;
if (!((tb.TemplatedParent as ContentPresenter)?.Parent is GridViewRowPresenter presenter)) return;
for (int i = 0; i < presenter.Columns.Count; i++)
{
if (!(VisualTreeHelper.GetChild(presenter, i) is ContentPresenter templated) ||
!templated.Equals((ContentPresenter)tb.TemplatedParent)) continue;
//found our column
if (presenter.Columns[i].ActualWidth < tb.ActualWidth && double.IsNaN(presenter.Columns[i].Width))
{
//now that bindings/templates are applied, control width > column width
//force remeasure
presenter.Columns[i].Width = tb.ActualWidth;
presenter.Columns[i].Width = double.NaN;
}
break;
}
}
}
}