C# WPF Datagrid的筛选

        public static void SearchResult(DataGrid dg,string condition)
        {
            #region
            string code = string.Empty;
            DataView dv = dg.ItemsSource as DataView;
            //if (condition.Substring(0, 1) != "0" || Regex.IsMatch(condition, @"^[+-]?\d*[.]?\d*$"))
            {
                for (int i = 0; i < dv.Table.Columns.Count; i++)
                {
                    if (dv.Table.Columns[i].DataType == typeof(System.Int32) || dv.Table.Columns[i].DataType == typeof(System.Byte))
                    {
                        if (condition.Substring(0, 1) != "0" && Regex.IsMatch(condition, @"^[+-]?\d*[.]?\d*$"))
                        {
                            code += (string)dv.Table.Columns[i].ToString() + " = " + condition + " or ";
                        }
                    }
                    else if (dv.Table.Columns[i].DataType == typeof(System.DateTime))
                    {
                        try
                        {
                            code += (string)dv.Table.Columns[i].ToString() + " = ‘" + Convert.ToDateTime(condition) + "‘ or ";
                        }
                        catch (Exception)
                        {
                        }
                    }
                    else
                    {
                        code += (string)dv.Table.Columns[i].ToString() + " = ‘" + condition + "‘ or ";
                    }
                }
            }
            if (!string.IsNullOrEmpty(code))
            {
                code = code.Substring(0, code.Length - 3);
                MessageBox.Show(code);
                dv.RowFilter = code;
                //dv.Sort = "ID ASC";
                dg.ItemsSource = dv;
            }
            #endregion
            //DataTable dv = (dg.ItemsSource as DataView).Table;
            //DataTable dtNew = dv.Copy();
            //dtNew.Clear();
            //foreach (DataRow row in dv.Rows)
            //{
            //    for (int i = 0; i < dv.Columns.Count; i++)
            //    {
            //        if (row[i].ToString() == condition)
            //        {
            //            dtNew.Rows.Add(row.ItemArray);
            //            break;
            //        }
            //    }
            //}
            //dg.ItemsSource = dtNew.DefaultView;
        }
时间: 2024-11-12 01:07:31

C# WPF Datagrid的筛选的相关文章

WPF DataGrid常用属性记录

WPF DataGrid常用属性记录 组件常用方法: BeginEdit:使DataGrid进入编辑状态. CancelEdit:取消DataGrid的编辑状态. CollapseRowGroup:闭合DataGrid的行分组. CommitEdit:确认DataGrid的编辑完成. ExpandRowGroup:展开DataGrid的行分组. GetGroupFromItem:从具体Item中得到分组. ScrollIntoView:滚动DataGrid视图. 组件常用属性: Alternat

WPF DataGrid自定义样式

WPF DataGrid自定义样式 微软的WPF DataGrid中有很多的属性和样式,你可以调整,以寻找合适的(如果你是一名设计师).下面,找到我的小抄造型的网格.它不是100%全面,但它可以让你走得很远,有一些非常有用的技巧和陷阱. 在DataGrid中的最高水平,你可以改变的外观和感觉,通过设置一些: Property Type Values Default AlternatingRowBackground Brush Any Brush Null Background Brush Any

wpf dataGrid 选中行 失去焦点时 的背景颜色的更改

关于 wpf dataGrid 选中行 失去焦点时 的背景颜色的更改.很简单的方式,在datagrid的resource中更改InactiveSelectionHighlightBrushKey属性的值即可. 关键代码如下: <DataGrid.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Yellow

WPF DataGrid显格式

Guide to WPF DataGrid formatting using bindings Peter Huber SG, 25 Nov 2013 CPOL    4.83 (13 votes) 1 2 3 4 5 4.83/5 - 13 votes μ 4.83, σa 0.93 [?] Rate: Add a reason or comment to your vote: x Votes of 3 or less require a comment Using Style and Bin

WPF DataGrid 之数据绑定

1. Auto generation of columns 最简单的方法莫过于让DataGrid根据数据源中的字段自动生成列了: 根据实体类的公共属性, 能够自动生成四种类型的数据列,对应关系如下: TextBox columns for string values; CheckBox columns for boolean values; ComboBox columns for enumerable values; Hyperlink columns for Uri values; 拖个Da

WPF DATAGRID - COMMITTING CHANGES CELL-BY-CELL

In my recent codeproject article on the DataGrid I described a number of techniques for handling the updates to DataTables which are bound to the grid. These examples all worked on the assumption that you want to keep your database synchronised with

[WPF]DataGrid C#添加右键弹出选择菜单

private void dataGrid_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { ContextMenu context = new ContextMenu(); MenuItem item = new MenuItem(); item.Header = "点击删除该行数据"; item.Click += new RoutedEventHandler(item_Click); context.Item

编写 WPF DataGrid 列模板,实现更好的用户体验

Julie Lerman 下载代码示例 最近我在为一个客户做一些 Windows Presentation Foundation (WPF) 方面的工作. 虽然我提倡使用第三方工具,但有时也会避免使用这些工具,这样做是为了体验那些坚持使用 Visual Studio 安装附带工具的开发人员会面临什么样的难题. 祝我好运吧!我们来研究一下 WPF DataGrid. 即便有 Web 搜索的帮助和来自在线论坛的建议,仍然有一些用户体验问题花了我几天时间才解决. 将 DataGrid 列分解为成对的互

WPF datagrid 初学

<Window x:Class="WpfDemo.WinDataGrid" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:assembly="clr-namespace:System;assembly=mscorlib&quo