init
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using DTS.Common.Controls;
|
||||
using DTS.Common.Interface.ISO.ExtraProperties;
|
||||
using DTS.Common.Utils;
|
||||
|
||||
namespace ExtraProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for ExtraPropertiesListView.xaml
|
||||
/// </summary>
|
||||
public partial class ExtraPropertiesListView : IExtraPropertiesListView
|
||||
{
|
||||
public ExtraPropertiesListView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var searchTerm = (string)e.OriginalSource;
|
||||
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
|
||||
var viewModel = (IExtraPropertiesListViewModel)DataContext;
|
||||
viewModel.Filter(columnTag, searchTerm);
|
||||
}
|
||||
|
||||
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = (IExtraPropertiesListViewModel)DataContext;
|
||||
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag;
|
||||
vm?.Sort(columnTag, true);
|
||||
}
|
||||
|
||||
private void ExtraPropertyKeyTextBox_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (!(DataContext is ExtraPropertiesListViewModel vm)) { return; }
|
||||
if (!(((System.Windows.Controls.Control)e.Source).DataContext is IExtraProperty iep)) { return; }
|
||||
|
||||
vm.MarkModified(iep);
|
||||
}
|
||||
|
||||
private void ExtraPropertyKeyTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (!(DataContext is ExtraPropertiesListViewModel vm)) { return; }
|
||||
if (!(e.Source is TextBox textBox)) { return; }
|
||||
if (!(textBox.DataContext is IExtraProperty iep)) { return; }
|
||||
|
||||
vm.MarkModified(iep);
|
||||
var notUsed1 = new List<string>();
|
||||
var notUsed2 = new List<string>();
|
||||
vm.Validate(ref notUsed1, ref notUsed2);
|
||||
}
|
||||
|
||||
private void ExtraProperties_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (!(DataContext is ExtraPropertiesListViewModel vm)) { return; }
|
||||
if (!(sender is ListView lv)) { return; }
|
||||
|
||||
var list = new List<IExtraProperty>();
|
||||
foreach (var item in lv.SelectedItems)
|
||||
{
|
||||
if (!(item is IExtraProperty exp))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
list.Add(exp);
|
||||
}
|
||||
vm.SetSelection(list.ToArray());
|
||||
}
|
||||
|
||||
private void ExtraPropertiesListView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
var point = e.GetPosition(ExtraPropertiesListViewLV);
|
||||
|
||||
//we have to do multiple hittests unfortunately, because borders and rectangles...
|
||||
var result = VisualTreeHelper.HitTest((UIElement)sender, point);
|
||||
if (null == result) { return; }
|
||||
if (!(result.VisualHit is UIElement element)) { return; }
|
||||
var result2 = ExtraPropertiesListViewLV.InputHitTest(point);
|
||||
if (!(result2 is UIElement element2)) { return; }
|
||||
|
||||
//clicking on the bottom of the listview produces a scrollviewer, if we get that we can return
|
||||
if (element is ScrollViewer)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var vm = (IExtraPropertiesListViewModel)DataContext;
|
||||
if (element is TextBlock tb)
|
||||
{
|
||||
if (tb.Text == ExtraProperties.Resources.StringResources.Key) { vm?.Sort(KeyColumnHeader.Tag, true); }
|
||||
if (tb.Text == ExtraProperties.Resources.StringResources.Value) { vm?.Sort(ValueColumnHeader.Tag, true); }
|
||||
return;
|
||||
}
|
||||
if (KeyColumnHeader.IsDescendantOf(element) || KeyColumnHeader.IsDescendantOf(element2))
|
||||
{
|
||||
vm?.Sort(KeyColumnHeader.Tag, true);
|
||||
return;
|
||||
}
|
||||
if (ValueColumnHeader.IsDescendantOf(element) || ValueColumnHeader.IsDescendantOf(element2))
|
||||
{
|
||||
vm?.Sort(ValueColumnHeader.Tag, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void ExtraPropertyValueTextBox_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (!(DataContext is ExtraPropertiesListViewModel vm)) { return; }
|
||||
if (!(((System.Windows.Controls.Control)e.Source).DataContext is IExtraProperty iep)) { return; }
|
||||
|
||||
vm.MarkModified(iep);
|
||||
}
|
||||
|
||||
private void ExtraPropertyValueTextBox_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
if (!(DataContext is ExtraPropertiesListViewModel vm)) { return; }
|
||||
if (!(e.Source is TextBox textBox)) { return; }
|
||||
if (!(textBox.DataContext is IExtraProperty iep)) { return; }
|
||||
|
||||
vm.MarkModified(iep);
|
||||
var notUsed1 = new List<string>();
|
||||
var notUsed2 = new List<string>();
|
||||
vm.Validate(ref notUsed1, ref notUsed2);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user