blob: acffb1de4e096bbd27073c1ea1d381617e52dd14 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
using Gestor.Common.Validation;
using Gestor.Model.Common;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Media;
namespace Gestor.Application.Helpers
{
public static class DataGridExtensions
{
public static void EsconderToggles(this DataGrid grid, TipoTela tela, TipoToggle toggles)
{
try
{
foreach (object item in grid.ItemContainerGenerator.Items)
{
grid.ScrollIntoView(item, grid.Columns[0]);
grid.UpdateLayout();
DataGridRow dataGridRow = (DataGridRow)grid.ItemContainerGenerator.ContainerFromItem(item);
if (dataGridRow == null)
{
continue;
}
grid.ScrollIntoView(dataGridRow, grid.Columns[4]);
grid.UpdateLayout();
DataGridCellsPresenter visualChild = DataGridExtensions.GetVisualChild<DataGridCellsPresenter>(dataGridRow);
DataGridCell dataGridCell = (DataGridCell)visualChild.ItemContainerGenerator.ContainerFromIndex(0);
if (dataGridCell == null || !dataGridCell.ToString().Contains(ValidationHelper.GetDescription(tela)))
{
continue;
}
if (toggles.HasFlag(TipoToggle.Consultar))
{
((DataGridCell)visualChild.ItemContainerGenerator.ContainerFromIndex(1)).Visibility = Visibility.Hidden;
}
if (toggles.HasFlag(TipoToggle.Incluir))
{
((DataGridCell)visualChild.ItemContainerGenerator.ContainerFromIndex(2)).Visibility = Visibility.Hidden;
}
if (toggles.HasFlag(TipoToggle.Alterar))
{
((DataGridCell)visualChild.ItemContainerGenerator.ContainerFromIndex(3)).Visibility = Visibility.Hidden;
}
if (toggles.HasFlag(TipoToggle.Excluir))
{
((DataGridCell)visualChild.ItemContainerGenerator.ContainerFromIndex(4)).Visibility = Visibility.Hidden;
}
return;
}
}
catch (Exception exception)
{
}
}
public static T GetVisualChild<T>(Visual parent)
where T : Visual
{
T t = default(T);
int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < childrenCount; i++)
{
Visual child = (Visual)VisualTreeHelper.GetChild(parent, i);
T visualChild = (T)(child as T);
if (visualChild == null)
{
visualChild = DataGridExtensions.GetVisualChild<T>(child);
}
t = visualChild;
if (t != null)
{
break;
}
}
return t;
}
}
}
|