{"id":2272,"date":"2024-10-17T17:17:52","date_gmt":"2024-10-17T17:17:52","guid":{"rendered":"http:\/\/localhost:10003\/?p=2272"},"modified":"2025-08-04T13:55:30","modified_gmt":"2025-08-04T13:55:30","slug":"filtrado-en-xceed-datagrid-para-wpf","status":"publish","type":"post","link":"https:\/\/xceed.com\/es\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/","title":{"rendered":"Filtrado en Xceed DataGrid para WPF"},"content":{"rendered":"<p>M\u00e1s informaci\u00f3n&nbsp;<a href=\"http:\/\/xceed.com\/en\/our-products\/product\/datagrid-for-wpf\" target=\"_blank\" rel=\"noreferrer noopener\">Xceed DataGrid para WPF<\/a><\/p>\n\n\n\n<p>La \u00faltima vez que vimos el DataGrid para WPF hab\u00edamos visto Agrupaci\u00f3n y Ordenaci\u00f3n. Hoy vamos a ver las opciones de Filtrado que ofrece el datagrid.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Opciones de filtrado<\/h2>\n\n\n\n<p>El DataGrid para WPF ofrece 3 formas de establecer un filtro:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Filtrado nativo de CollectionView (utilizando el par\u00e1metro Filter en CollectionViewSource)<\/li>\n\n\n\n<li>Filtrado autom\u00e1tico (mediante AutoFilterControl)<\/li>\n\n\n\n<li>Filtrado avanzado (mediante FilterRow)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Filtrado nativo CollectionView<\/h2>\n\n\n\n<p>Los elementos de datos que se muestran en una cuadr\u00edcula pueden filtrarse mediante la funci\u00f3n&nbsp;<em>Filtro<\/em>&nbsp;propiedad del&nbsp;<em>DataGridCollectionViewBase<\/em>&nbsp;o el&nbsp;<em>Filtro<\/em>&nbsp;evento del&nbsp;<em>DataGridCollectionViewSourceBase<\/em>&nbsp;al que est\u00e1 vinculado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">&lt;Grid xmlns:xcdg=\"http:\/\/schemas.xceed.com\/wpf\/xaml\/datagrid\"&gt;\n\t&lt;Grid.Resources&gt;\n\t\t&lt;xcdg:DataGridCollectionViewSource x:Key=\"cvs_orders\"\n\t\t\t\t\t\t   Source=\"{Binding Source={x:Static Application.Current},Path=Orders}\"\n\t\t\t\t\t\t   Filter=\"ShipViaFilter\"\/&gt;\n\t&lt;\/Grid.Resources&gt;\n\t&lt;xcdg:DataGridControl x:Name=\"OrdersGrid\"\n\t\t\t      ItemsSource=\"{Binding Source={StaticResource cvs_orders}}\"\/&gt;\n&lt;\/Grid&gt;\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">private void ShipViaFilter( object sender, FilterEventArgs e )\n{\n\tobject value = ( ( System.Data.DataRow )e.Item )&#91; \"ShipVia\" ];\n\tif( ( value != null ) &amp;&amp; ( value != DBNull.Value ) )\n\t{\n\t\tif( ( int )value == 3 )\n\t\t{\n\t\t\te.Accepted = true;\n\t\t}\n\t\telse\n\t\t{\n\t\t\te.Accepted = false;\n\t\t}\n\t}\n}\n<\/code><\/pre>\n\n\n\n<p>Para volver a filtrar los elementos de datos mostrados en una vista, el bot\u00f3n&nbsp;<em>Se puede llamar al m\u00e9todo Refresh en el ItemsSource.<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">( ( DataGridCollectionView )this.OrdersGrid.ItemsSource ).Refresh();\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Filtrado autom\u00e1tico<\/h2>\n\n\n\n<p>En&nbsp;<em>DataGridCollectionView<\/em>&nbsp;y&nbsp;<em>DataGridDetailDescription<\/em>&nbsp;admiten el filtrado autom\u00e1tico, que proporciona al usuario final un filtrado similar al de Excel seg\u00fan los distintos valores de cada columna. El filtrado autom\u00e1tico puede activarse estableciendo el par\u00e1metro&nbsp;<em>AutoFilterMode<\/em>&nbsp;propiedad a&nbsp;<strong>Y<\/strong>&nbsp;o&nbsp;<strong>O<\/strong>&nbsp;(<strong>Ninguno<\/strong>&nbsp;por defecto), que indica si los elementos de datos se filtrar\u00e1n seg\u00fan&nbsp;<strong>todos<\/strong>&nbsp;o&nbsp;<strong>al menos una<\/strong>&nbsp;de los criterios de filtrado definidos por el control de autofiltrado de cada columna. La direcci\u00f3n&nbsp;<em>DistinctValuesConstraint<\/em>&nbsp;tambi\u00e9n puede establecerse para determinar si los valores distintos deben filtrarse seg\u00fan el resultado de operaciones previas de autofiltrado.<\/p>\n\n\n\n<p>Opci\u00f3n1 : establecer en XAML<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">&lt;Grid xmlns:xcdg=\"http:\/\/schemas.xceed.com\/wpf\/xaml\/datagrid\"&gt;\n\t&lt;Grid.Resources&gt;\n\t\t&lt;xcdg:DataGridCollectionViewSource x:Key=\"cvs_orders\"\n\t\t\t\t\t\t   Source=\"{Binding Source={x:Static Application.Current},Path=Orders}\"\n\t\t\t\t\t\t   AutoFilterMode=\"And\"\n\t\t\t\t\t\t   DistinctValuesConstraint=\"Filtered\"\n\t\t\t\t\t\t   AutoCreateItemProperties=\"False\"&gt;\n\t\t\t&lt;xcdg:DataGridCollectionViewSource.ItemProperties&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"ShipCountry\"\n\t\t\t\t\t\t\t   Title=\"Country\"\/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"ShipCity\"\n\t\t\t\t\t\t\t   Title=\"City\"\/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"ShipAddress\"\n\t\t\t\t\t\t\t   Title=\"Address\"\/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"ShipPostalCode\"\n\t\t\t\t\t\t\t   Title=\"Postal Code\"\/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"ShipName\"\n\t\t\t\t\t\t\t   Title=\"Name\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"False\"\/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"OrderDate\"\n\t\t\t\t\t\t\t   Title=\"Order Date\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"False\"\/&gt;            \n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"Freight\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"False\"\/&gt;\n\t\t\t&lt;\/xcdg:DataGridCollectionViewSource.ItemProperties&gt;\n\t\t&lt;\/xcdg:DataGridCollectionViewSource&gt;\n\t&lt;\/Grid.Resources&gt;\n\t&lt;xcdg:DataGridControl x:Name=\"OrdersGrid\"\n\t\t\t      ItemsSource=\"{Binding Source={StaticResource cvs_orders}}\"\/&gt;\n&lt;\/Grid&gt;\n<\/code><\/pre>\n\n\n\n<p>Opci\u00f3n 2: establecer en code-behind<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">DataGridCollectionView view = new DataGridCollectionView( Orders, typeof( System.Data.DataRow ), false, false );\nview.AutoFilterMode = AutoFilterMode.And;\nview.DistinctValuesConstraint = DistinctValuesConstraint.Filtered;\nview.ItemProperties.Add( new DataGridItemProperty( \"ShipCountry\", typeof( string ) ) );\nview.ItemProperties.Add( new DataGridItemProperty( \"ShipCity\", typeof( string ) ) );\nview.ItemProperties.Add( new DataGridItemProperty( \"ShipAddress\", typeof( string ) ) );\nview.ItemProperties.Add( new DataGridItemProperty( \"ShipPostalCode\", typeof( string ) ) );\n\nDataGridItemProperty shipName = new DataGridItemProperty( \"ShipName\", typeof( string ) );\nshipName.CalculateDistinctValues = false;\nview.ItemProperties.Add( shipName );\n\nDataGridItemProperty orderDate = new DataGridItemProperty( \"OrderDate\", typeof( DateTime ) );\norderDate.CalculateDistinctValues = false;\nview.ItemProperties.Add( orderDate );\n\nDataGridItemProperty freight = new DataGridItemProperty( \"Freight\", typeof( double ) );\nfreight.CalculateDistinctValues = false;\nview.ItemProperties.Add( freight );\n\ndataGridControl.ItemsSource = view;  \n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Filtrado avanzado<\/h2>\n\n\n\n<p>Adem\u00e1s del filtrado autom\u00e1tico, la parrilla ofrece un&nbsp;<em>FiltrarFila<\/em>&nbsp;que permite a los usuarios especificar una expresi\u00f3n de filtro utilizada por la funci\u00f3n&nbsp;<em>DataGridCollectionView<\/em>&nbsp;para filtrar elementos de datos. Las expresiones de filtrado introducidas en&nbsp;<em>FilterCell<\/em>&nbsp;siguen una sintaxis y unas reglas espec\u00edficas. Esto puede ser engorroso de aprender para los usuarios, y aqu\u00ed es donde el filtrado avanzado viene al rescate. El filtrado avanzado ofrece una interfaz de usuario que ayuda a los usuarios a crear expresiones de filtrado sin necesidad de aprender otra sintaxis.<\/p>\n\n\n\n<p>El filtrado avanzado puede activarse configurando la opci\u00f3n&nbsp;<em>AdvancedFilterMode<\/em>&nbsp;a un valor distinto de&nbsp;<strong>Ninguno<\/strong>que es el valor por defecto. El modo elegido indica c\u00f3mo se activa el control de filtrado avanzado. Tenga en cuenta que es posible desactivar el filtrado avanzado por columna configurando el par\u00e1metro&nbsp;<em>Permitir filtro avanzado<\/em>&nbsp;propiedad a&nbsp;<strong>falso<\/strong>&nbsp;(<strong>verdadero<\/strong>&nbsp;por defecto), esto impedir\u00e1 que se muestre el control de filtro avanzado para esa columna.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">&lt;Grid xmlns:xcdg=\"http:\/\/schemas.xceed.com\/wpf\/xaml\/datagrid\"&gt;\n\t&lt;Grid.Resources&gt;\n\t\t&lt;xcdg:DataGridCollectionViewSource x:Key=\"cvs_orders\"\n\t\t\t\t\t\t   Source=\"{Binding Source={x:Static Application.Current}, Path=Orders}\" \/&gt;\n\t&lt;\/Grid.Resources\/&gt;\n\t&lt;xcdg:DataGridControl x:Name=\"OrdersGrid\"\n\t\t\t      ItemsSource=\"{Binding Source={StaticResource cvs_orders}}\"&gt;\n\t\t&lt;xcdg:DataGridControl.Columns&gt;\n\t\t\t&lt;xcdg:Column FieldName=\"ShipCountry\"\n\t\t\t\t     AllowAdvancedFilter=\"False\" \/&gt;\n\t\t&lt;\/xcdg:DataGridControl.Columns&gt;\n\t\t&lt;xcdg:DataGridControl.View&gt;\n\t\t\t&lt;xcdg:TableflowView AdvancedFilterMode=\"Always\" \/&gt;\n\t\t&lt;\/xcdg:DataGridControl.View&gt;\n\t&lt;\/xcdg:DataGridControl&gt;\n&lt;\/Grid&gt;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Valores distintivos personalizados<\/h2>\n\n\n\n<p>Por defecto, los valores que se muestran en el desplegable del autofiltro representan los valores distintivos tal y como se extraen de la fuente de datos subyacente; sin embargo, se pueden proporcionar valores distintivos personalizados para una o m\u00e1s propiedades de elemento en lugar de los valores distintivos extra\u00eddos originalmente manejando su&nbsp;<em>ConsultaValorDistinto<\/em>&nbsp;y devolviendo el valor personalizado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">&lt;Grid xmlns:xcdg=\"http:\/\/schemas.xceed.com\/wpf\/xaml\/datagrid\"&gt;\n\t&lt;Grid.Resources&gt;\n\t\t&lt;xcdg:DataGridCollectionViewSource x:Key=\"cvs_orders\"\n\t\t\t\t\t\t   Source=\"{Binding Source={x:Static Application.Current}, Path=Orders}\"\n\t\t\t\t\t\t   AutoFilterMode=\"And\"\n\t\t\t\t\t\t   DefaultCalculateDistinctValues=\"False\"&gt;\n\t\t\t&lt;xcdg:DataGridCollectionViewSource.ItemProperties&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"OrderDate\"\n\t\t\t\t\t\t\t   QueryDistinctValue=\"DataGridItemProperty_QueryDistinctValue_Date\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"True\"\/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"RequiredDate\"\n\t\t\t\t\t\t\t   QueryDistinctValue=\"DataGridItemProperty_QueryDistinctValue_Date\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"True\" \/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"ShippedDate\"\n\t\t\t\t\t\t\t   QueryDistinctValue=\"DataGridItemProperty_QueryDistinctValue_Date\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"True\" \/&gt;\n\t\t\t\t&lt;xcdg:DataGridItemProperty Name=\"Freight\"\n\t\t\t\t\t\t\t   QueryDistinctValue=\"DataGridItemProperty_QueryDistinctValue_Range\"\n\t\t\t\t\t\t\t   CalculateDistinctValues=\"True\" \/&gt;\n\t\t\t&lt;\/xcdg:DataGridCollectionViewSource.ItemProperties&gt;\n\t\t&lt;\/xcdg:DataGridCollectionViewSource&gt;\n\t&lt;\/Grid.Resources&gt;\n\t&lt;xcdg:DataGridControl x:Name=\"OrdersGrid\"\n\t\t\t      ItemsSource=\"{Binding Source={StaticResource cvs_orders}}\"\/&gt;\n&lt;\/Grid&gt;\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">private void DataGridItemProperty_QueryDistinctValue_Date( object sender, QueryDistinctValueEventArgs e )\n{\n\tif( e.DataSourceValue is DateTime )\n\t{\n\t\te.DistinctValue = ( ( DateTime )e.DataSourceValue ).ToString( \"MMMM\" );\n\t}\n}\nprivate void DataGridItemProperty_QueryDistinctValue_Range( object sender, QueryDistinctValueEventArgs e )\n{\n\tif( e.DataSourceValue is decimal )\n\t{\n\t\tdecimal value = ( decimal )e.DataSourceValue;\n\t\tif( value &lt;= 100 )\n\t\t{\n\t\t\te.DistinctValue = \"0 - 100\";\n\t\t}\n\t\telse if( value &gt; 100 &amp;&amp; value &lt;= 500 )\n\t\t{\n\t\t\te.DistinctValue = \"101 - 500\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\te.DistinctValue = \"500+\";\n\t\t}\n\t}\n}\n<\/code><\/pre>\n\n\n\n<p>Para m\u00e1s informaci\u00f3n, consulte el&nbsp;<a href=\"https:\/\/doc.xceed.com\/xceed-datagrid-for-wpf\/webframe.html#rootWelcome.html\" target=\"_blank\" rel=\"noreferrer noopener\">documentaci\u00f3n<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>DataGrid para WPF ofrece 3 formas de establecer un filtro: Filtrado nativo CollectionView (utilizando el par\u00e1metro Filter en el CollectionViewSource), Filtrado autom\u00e1tico (utilizando el AutoFilterControl) y Filtrado avanzado (utilizando el FilterRow).<\/p>","protected":false},"author":2,"featured_media":2238,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[141,60],"tags":[],"class_list":["post-2272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","category-tutorials"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Filtering in Xceed DataGrid for WPF - Xceed<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/xceed.com\/es\/blog\/tutoriales\/filtrado-en-xceed-datagrid-para-wpf\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Filtering in Xceed DataGrid for WPF - Xceed\" \/>\n<meta property=\"og:description\" content=\"The DataGrid for WPF offers 3 ways to set a filter: Native CollectionView Filtering (using the Filter parameter on the CollectionViewSource), Automatic Filtering (using the AutoFilterControl) and Advanced Filtering (using the FilterRow)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/xceed.com\/es\/blog\/tutoriales\/filtrado-en-xceed-datagrid-para-wpf\/\" \/>\n<meta property=\"og:site_name\" content=\"Xceed\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-17T17:17:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T13:55:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/xceed.com\/wp-content\/uploads\/2024\/10\/blog_DGP-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alain Jreij\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alain Jreij\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/\"},\"author\":{\"name\":\"Alain Jreij\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/2d9169e6fd8ae4a8f58a9e1cc9a73778\"},\"headline\":\"Filtering in Xceed DataGrid for WPF\",\"datePublished\":\"2024-10-17T17:17:52+00:00\",\"dateModified\":\"2025-08-04T13:55:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/\"},\"wordCount\":488,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/blog_DGP-1.png\",\"articleSection\":[\"All\",\"Tutorials\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/\",\"name\":\"Filtering in Xceed DataGrid for WPF - Xceed\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/blog_DGP-1.png\",\"datePublished\":\"2024-10-17T17:17:52+00:00\",\"dateModified\":\"2025-08-04T13:55:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#primaryimage\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/blog_DGP-1.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/blog_DGP-1.png\",\"width\":350,\"height\":350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/xceed.com\\\/blog\\\/tutorials\\\/filtering-in-xceed-datagrid-for-wpf\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/xceed.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Filtering in Xceed DataGrid for WPF\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"name\":\"Xceed\",\"description\":\"Provides tools for .NET, Windows Forms, WPF, Silverlight, and ASP.NET developers to create better applications.\",\"publisher\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/xceed.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#organization\",\"name\":\"Xceed\",\"url\":\"https:\\\/\\\/xceed.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/cropped-xceed-logo.png\",\"contentUrl\":\"https:\\\/\\\/xceed.com\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/cropped-xceed-logo.png\",\"width\":609,\"height\":150,\"caption\":\"Xceed\"},\"image\":{\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/xceed.com\\\/fr\\\/#\\\/schema\\\/person\\\/2d9169e6fd8ae4a8f58a9e1cc9a73778\",\"name\":\"Alain Jreij\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/87ff2d1efbe1a868809d8d554724877b76941f668176489a42238d867ab8bf06?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/87ff2d1efbe1a868809d8d554724877b76941f668176489a42238d867ab8bf06?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/87ff2d1efbe1a868809d8d554724877b76941f668176489a42238d867ab8bf06?s=96&d=mm&r=g\",\"caption\":\"Alain Jreij\"},\"url\":\"https:\\\/\\\/xceed.com\\\/es\\\/blog\\\/author\\\/jreijaxceed-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Filtrado en Xceed DataGrid para WPF - Xceed","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/xceed.com\/es\/blog\/tutoriales\/filtrado-en-xceed-datagrid-para-wpf\/","og_locale":"es_MX","og_type":"article","og_title":"Filtering in Xceed DataGrid for WPF - Xceed","og_description":"The DataGrid for WPF offers 3 ways to set a filter: Native CollectionView Filtering (using the Filter parameter on the CollectionViewSource), Automatic Filtering (using the AutoFilterControl) and Advanced Filtering (using the FilterRow)","og_url":"https:\/\/xceed.com\/es\/blog\/tutoriales\/filtrado-en-xceed-datagrid-para-wpf\/","og_site_name":"Xceed","article_published_time":"2024-10-17T17:17:52+00:00","article_modified_time":"2025-08-04T13:55:30+00:00","og_image":[{"width":350,"height":350,"url":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/10\/blog_DGP-1.png","type":"image\/png"}],"author":"Alain Jreij","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Alain Jreij","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#article","isPartOf":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/"},"author":{"name":"Alain Jreij","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/2d9169e6fd8ae4a8f58a9e1cc9a73778"},"headline":"Filtering in Xceed DataGrid for WPF","datePublished":"2024-10-17T17:17:52+00:00","dateModified":"2025-08-04T13:55:30+00:00","mainEntityOfPage":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/"},"wordCount":488,"commentCount":0,"publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"image":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/10\/blog_DGP-1.png","articleSection":["All","Tutorials"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/","url":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/","name":"Filtrado en Xceed DataGrid para WPF - Xceed","isPartOf":{"@id":"https:\/\/xceed.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#primaryimage"},"image":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#primaryimage"},"thumbnailUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/10\/blog_DGP-1.png","datePublished":"2024-10-17T17:17:52+00:00","dateModified":"2025-08-04T13:55:30+00:00","breadcrumb":{"@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#primaryimage","url":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/10\/blog_DGP-1.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/10\/blog_DGP-1.png","width":350,"height":350},{"@type":"BreadcrumbList","@id":"https:\/\/xceed.com\/blog\/tutorials\/filtering-in-xceed-datagrid-for-wpf\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/xceed.com\/"},{"@type":"ListItem","position":2,"name":"Filtering in Xceed DataGrid for WPF"}]},{"@type":"WebSite","@id":"https:\/\/xceed.com\/fr\/#website","url":"https:\/\/xceed.com\/fr\/","name":"Xceed","description":"Proporciona herramientas para que los desarrolladores de .NET, Windows Forms, WPF, Silverlight y ASP.NET puedan crear mejores aplicaciones.","publisher":{"@id":"https:\/\/xceed.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/xceed.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/xceed.com\/fr\/#organization","name":"Xceed","url":"https:\/\/xceed.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/04\/cropped-xceed-logo.png","contentUrl":"https:\/\/xceed.com\/wp-content\/uploads\/2024\/04\/cropped-xceed-logo.png","width":609,"height":150,"caption":"Xceed"},"image":{"@id":"https:\/\/xceed.com\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/xceed.com\/fr\/#\/schema\/person\/2d9169e6fd8ae4a8f58a9e1cc9a73778","name":"Alain Jreij","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/87ff2d1efbe1a868809d8d554724877b76941f668176489a42238d867ab8bf06?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/87ff2d1efbe1a868809d8d554724877b76941f668176489a42238d867ab8bf06?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/87ff2d1efbe1a868809d8d554724877b76941f668176489a42238d867ab8bf06?s=96&d=mm&r=g","caption":"Alain Jreij"},"url":"https:\/\/xceed.com\/es\/blog\/author\/jreijaxceed-com\/"}]}},"_links":{"self":[{"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/posts\/2272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/comments?post=2272"}],"version-history":[{"count":0,"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/posts\/2272\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/media\/2238"}],"wp:attachment":[{"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/media?parent=2272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/categories?post=2272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xceed.com\/es\/wp-json\/wp\/v2\/tags?post=2272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}