Sic.Framework-Nanjing-Baishi/MECF.Framework.UI.Client/DataGridTransform/ExtendedGrid/Converter/RowSummariesClearButtonIsEn...

91 lines
3.1 KiB
C#

using System;
using System.Data;
using System.Globalization;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using ExtendedGrid.Classes;
namespace ExtendedGrid.Converter
{
class RowSummariesClearButtonIsEnabledConverter:IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
Button clearButton = null;
bool value = false;
var header = values[0] as DataGridColumnHeader;
try
{
if (values[0] == DependencyProperty.UnsetValue || values[1] == DependencyProperty.UnsetValue)
return false;
var dt = values[1] as DataTable;
if (header == null || dt == null)
return false;
if (header.Column == null)
return false;
var currentColumnName = RowSummariesHelper.CurrentColumn;
if (currentColumnName == null) return false;
if (dt.Columns.Contains(currentColumnName))
foreach (DataRow row in dt.Rows)
{
if (!string.IsNullOrEmpty(System.Convert.ToString(row[currentColumnName])))
{
var dockPanel = FindControls.FindChild<DockPanel>(header, null);
if (dockPanel != null)
{
clearButton =
((StackPanel)
(((Popup)(dockPanel.Children[1])).Child)).Children[
0] as Button;
if (clearButton != null)
{
value = true;
clearButton.IsEnabled = true;
}
}
}
}
return false;
}
finally
{
if (value)
{
}
else
{
if (clearButton != null)
{
clearButton.IsEnabled = false;
}
else
{
var dockPanel = FindControls.FindChild<DockPanel>(header, null);
if (dockPanel != null)
{
clearButton =
((StackPanel)
(((Popup) (dockPanel.Children[1])).Child)).Children[
0] as Button;
if (clearButton != null)
{
clearButton.IsEnabled = false;
}
}
}
}
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}