日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21]

發(fā)布時(shí)間:2025/4/5 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

DataGrid中使用字段過濾可以用來進(jìn)行數(shù)據(jù)的篩選,查找出符合條件的信息。本文將為大家介紹如何對DataGrid執(zhí)行字段過濾。

?

需要了解的知識

1PagedCollectionView

它代表了一個有關(guān)分組、排序、篩選和導(dǎo)航的分頁數(shù)據(jù)集合。

2PagedCollectionViewFilter屬性

用來設(shè)置PagedCollectionView的過濾器,進(jìn)行字段信息等過濾。

3)過濾器函數(shù)

用作過濾器的主體

?

實(shí)例

詳細(xì)的說明在代碼注釋中給出。

?

MainPage.xaml文件代碼:

<UserControl

?? ?xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

?? ?xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

?? ?xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

?? ?mc:Ignorable="d" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightClient.MainPage"

?? ?d:DesignWidth="320" d:DesignHeight="240">

??? <Grid x:Name="LayoutRoot" Background="White" Width="320" Height="240">

??????? <TextBlock Height="24" HorizontalAlignment="Left" Margin="8,8,0,0" VerticalAlignment="Top" Width="67" Text="過濾字段:" TextWrapping="Wrap" FontSize="13.333"/>

??????? <ComboBox x:Name="cbColumns" FontSize="14" Height="24" Margin="75,8,135,0" VerticalAlignment="Top"/>

??????? <TextBlock Height="24" HorizontalAlignment="Right" Margin="0,8,104,0" VerticalAlignment="Top" Width="27" FontSize="13.333" Text="值:" TextWrapping="Wrap"/>

??????? <TextBox x:Name="tbValue" Height="24" FontSize="14" HorizontalAlignment="Right" Margin="0,8,8,0" VerticalAlignment="Top" Width="92" TextWrapping="Wrap"/>

??????? <data:DataGrid x:Name="dgEmployee" AutoGenerateColumns="False" Margin="7,36,7,45" FontSize="14">

??????????? <data:DataGrid.Columns>

??????????????? <data:DataGridTextColumn Header="工號" Binding="{Binding EmployeeID}"/>

??????????????? <data:DataGridTextColumn Header="姓名" Binding="{Binding EmployeeName}"/>

??????????????? <data:DataGridTextColumn Header="年齡" Binding="{Binding EmployeeAge}"/>

??????????????? <data:DataGridTextColumn Header="部門" Binding="{Binding DepartmentName}"/>

??????????????? <data:DataGridTextColumn Header="級別" Binding="{Binding Level}"/>

??????????? </data:DataGrid.Columns>

??????? </data:DataGrid>

??????????? <Button x:Name="btnFilter" Height="30" HorizontalAlignment="Left" Margin="7,0,0,8" VerticalAlignment="Bottom" Width="68" Content="過濾" FontSize="13.333"/>

??????? <Button x:Name="btnRestore" Height="30" HorizontalAlignment="Left" Margin="88,0,0,8" VerticalAlignment="Bottom" Width="68" Content="重置" FontSize="13.333"/>

??? </Grid>

</UserControl>

MainPage.xaml.cs文件代碼:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

using System.Windows.Data;

?

namespace SilverlightClient

{

??? public class Employees

??? {

??????? public int EmployeeID { get; set; }

??????? public string EmployeeName { get; set; }

??????? public int EmployeeAge { get; set; }

??????? public string DepartmentName { get; set; }

??????? public string Level { get; set; }

??? }

?

??? public partial class MainPage : UserControl

??? {

??????? PagedCollectionView pcv;

?

??????? public MainPage()

??????? {

??????????? InitializeComponent();

??????????? this.Loaded += new RoutedEventHandler(MainPage_Loaded);

??????????? this.btnFilter.Click += new RoutedEventHandler(btnFilter_Click);

??????????? this.btnRestore.Click += new RoutedEventHandler(btnRestore_Click);

??????? }

?

??????? public List<string> GetColumns()

??????? {

??????????? List<string> c = new List<string>();

?? ?????????c.Add("員工號");

??????????? c.Add("姓名");

??????????? c.Add("年齡");

??????????? c.Add("部門");

??????????? c.Add("級別");

??????????? return c;

??????? }

?

??????? public List<Employees> GetEmployees()

??????? {

??????????? List<Employees> returnedValue = new List<Employees>();

??????????? returnedValue.Add(new Employees() { EmployeeID = 1, EmployeeName = "張三", EmployeeAge = 23, DepartmentName = "財(cái)務(wù)部", Level = "初級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 2, EmployeeName = "李四", EmployeeAge = 24, DepartmentName = "財(cái)務(wù)部", Level = "中級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 3, EmployeeName = "王五", EmployeeAge = 25, DepartmentName = "管理部", Level = "中級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 4, EmployeeName = "趙六", EmployeeAge = 26, DepartmentName = "管理部", Level = "初級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 5, EmployeeName = "錢七", EmployeeAge = 27, DepartmentName = "工程部", Level = "中級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 6, EmployeeName = "孫八", EmployeeAge = 28, DepartmentName = "工程部", Level = "初級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 7, EmployeeName = "小趙", EmployeeAge = 26, DepartmentName = "財(cái)務(wù)部", Level = "中級" });

??????????? returnedValue.Add(new Employees() { EmployeeID = 8, EmployeeName = "小錢", EmployeeAge = 28, DepartmentName = "財(cái)務(wù)部", Level = "高級" });

??????????? return returnedValue;

??????? }

?

??????? void MainPage_Loaded(object sender, RoutedEventArgs e)

??????? {

??????????? GetRestore();

??????? }

?

??????? void btnRestore_Click(object sender, RoutedEventArgs e)

??????? {

??????????? GetRestore();

??????? }

?

??????? void btnFilter_Click(object sender, RoutedEventArgs e)

??????? {

??????????? if (cbColumns.SelectedIndex != -1 && tbValue.Text != "")

??????????? {

??????????????? switch (cbColumns.SelectedIndex)

??????????????? {

??????????????????? case 0:

??????????????????? pcv.Filter = new Predicate<object>(FilterEmployeeID);

??????????????????? break;

??????????????????? case 1:

??????????????????? pcv.Filter = new Predicate<object>(FilterEmployeeName);

??????????????????? break;

??????????????????? case 2:

??????????????????? pcv.Filter = new Predicate<object>(FilterEmployeeAge);

??????????????????? break;

??????????????????? case 3:

??????????????????? pcv.Filter = new Predicate<object>(FilterDepartmentName);

??????????????????? break;

??????????????????? case 4:

??????????????????? pcv.Filter = new Predicate<object>(FilterLevel);

??????????????????? break;

??????????????? }

??????????? }

??????? }

???????

??????? //過濾器函數(shù)

??????? public bool FilterEmployeeID(object t)

??????? {

??????????? Employees em = t as Employees;

??????????? return (em.EmployeeID == Convert.ToInt32(tbValue.Text));

??????? }

?

? ??????public bool FilterEmployeeName(object t)

??????? {

??????????? Employees em = t as Employees;

??????????? return (em.EmployeeName == Convert.ToString(tbValue.Text));

??????? }

?

??????? public bool FilterEmployeeAge(object t)

??????? {

??????????? Employees em = t as Employees;

??????????? return (em.EmployeeAge >= Convert.ToInt32(tbValue.Text));//這里用的是大于等于條件

??????? }

?

??????? public bool FilterDepartmentName(object t)

??????? {

??????????? Employees em = t as Employees;

??????????? return (em.DepartmentName == Convert.ToString(tbValue.Text));

??????? }

?

??????? public bool FilterLevel(object t)

??????? {

??????????? Employees em = t as Employees;

??????????? return (em.Level == Convert.ToString(tbValue.Text));

??????? }

?

??????? //重置信息

??????? public void GetRestore()

??????? {

??????????? pcv = new PagedCollectionView(GetEmployees());

??????????? dgEmployee.ItemsSource = pcv;

??????????? cbColumns.ItemsSource = GetColumns();

??????????? cbColumns.SelectedIndex = 0;

??????????? tbValue.Text = String.Empty;

??????? }

??? }

}

?

最終效果圖

?

作者:Kinglee
文章出處:Kinglee’s Blog (http://www.cnblogs.com/Kinglee/)
版權(quán)聲明:本文的版權(quán)歸作者與博客園共有。轉(zhuǎn)載時(shí)須注明本文的詳細(xì)鏈接,否則作者將保留追究其法律責(zé)任。

總結(jié)

以上是生活随笔為你收集整理的强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 乱色熟女综合一区二区三区 | 青青草手机视频在线观看 | 国产91在线播放九色 | 亚洲成a人片777777久久 | 99综合久久 | 国产黄色在线播放 | 色哟哟无码精品一区二区三区 | 韩产日产国产欧产 | 久久黄视频 | 亚洲精品乱码久久久久久蜜桃不卡 | 爱操av | 久色福利| 人妻熟女一区二区三区app下载 | 欧美亚洲国产一区 | 在线免费观看黄色小视频 | 国产一区二区在 | 超碰在线图片 | 公肉吊粗大爽色翁浪妇视频 | 欧州一区二区三区 | 国产成人在线视频观看 | 欧美精品久 | av官网| 17c国产精品一区二区 | 萌白酱喷水视频 | 欧美一区二区不卡视频 | 亚洲AV成人无码久久精品巨臀 | 男女床上拍拍拍 | 啪啪自拍 | 涩色视频| 国产 欧美 自拍 | 亚洲欧美综合在线观看 | 大奶子在线观看 | 成年人免费av| 久久精品国产亚洲av久一一区 | 久久中文精品 | 国产激情在线 | 国产精品一区二区三区四区在线观看 | 日韩在线精品视频一区二区涩爱 | 黄色一级国产 | 日本免费一区二区视频 | 神马久久久久久久久久 | 欧美视频精品在线 | 国产又粗又猛又爽69xx | 中文天堂在线资源 | 色婷婷电影网 | 欧美区亚洲区 | 俄罗斯porn| 奇米影视狠狠 | 日韩av一级片| 最近最好的2019中文 | 欧美一级视频免费 | 欧美精品在线视频 | 91日韩在线视频 | 性猛交娇小69hd | 日本三级中国三级99人妇网站 | 亚洲欧美另类在线 | av日韩免费| 亚洲一区二区三区国产 | 能免费看黄色的网站 | 午夜一区不卡 | 国产精品久久久久无码av | 免费激情网址 | 欧美亚洲另类小说 | 九九热国产在线 | 黄站在线观看 | 欧美日韩国产一区二区 | 中文一区二区 | 香蕉久久一区二区三区 | 超碰97成人| 一本一道精品欧美中文字幕 | 99国内揄拍国内精品人妻免费 | 在线视频午夜 | 欧美乱色| 最新激情网站 | 国内精品偷拍视频 | 欧美 中文字幕 | 在线亚洲+欧美+日本专区 | 日日夜精品 | 国产又粗又深又猛又爽又在线观看 | 美女高潮在线 | 日日日日日日 | 午夜影院在线视频 | 亚洲免费高清视频 | 337p日本大胆噜噜噜鲁 | 蜜桃成熟时李丽珍国语 | 美女视频黄免费 | 日韩国产小视频 | 国产剧情一区二区 | 天天操天天操天天 | 黄片毛片av | 激情欧美亚洲 | 在线观看高清av | 99国产在线观看 | 草草影院最新网址 | 国产成人精品视频ⅴa片软件竹菊 | 内射干少妇亚洲69xxx | 亚洲激情图片 | 色综合av在线 | 亚洲一区二区精华 |