Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF过滤器数据网格_C#_Wpf_Datagrid_Filtering_Xelement - Fatal编程技术网

C# WPF过滤器数据网格

C# WPF过滤器数据网格,c#,wpf,datagrid,filtering,xelement,C#,Wpf,Datagrid,Filtering,Xelement,我有一个数据网格,我想根据从组合框中选择的值进行过滤。datagrid的源是一个XML文件。下面是我正在使用的代码。当我跟踪代码时,视图过滤器为每一行正确地返回true和false,但datagrid从不更新。我错过了什么简单的东西 ComboBoxItem typeItem = (ComboBoxItem)cbPositionFilter.SelectedItem; String position = typeItem.Content.ToString(); IEnumerable<X

我有一个数据网格,我想根据从组合框中选择的值进行过滤。datagrid的源是一个XML文件。下面是我正在使用的代码。当我跟踪代码时,视图过滤器为每一行正确地返回true和false,但datagrid从不更新。我错过了什么简单的东西

ComboBoxItem typeItem = (ComboBoxItem)cbPositionFilter.SelectedItem;
String position = typeItem.Content.ToString();

IEnumerable<XElement> playersSource = ((XContainer)AllPlayers.DataContext).Descendants("Player");
ICollectionView view = CollectionViewSource.GetDefaultView(playersSource);

 view.Filter = delegate(object item)
 {
       bool match = ((XElement)(item)).Element("position").Value == position;
       return match;
 };
ComboBoxItem typeItem=(ComboBoxItem)cbPositionFilter.SelectedItem;
字符串位置=typeItem.Content.ToString();
IEnumerable playersSource=((XContainer)AllPlayers.DataContext).子代(“Player”);
ICollectionView视图=CollectionViewSource.GetDefaultView(PlayerSource);
view.Filter=委托(对象项)
{
布尔匹配=((像素)(项))。元素(“位置”)。值==位置;
复赛;
};

您的
数据网格
是否绑定到
播放器源
,或
视图
?如果你在做前者,试试后者。:)

您使用什么XAML将XML绑定到网格?我怀疑绑定的集合和PlayerSource是不同的,因此具有不同的默认视图。是的,我没有意识到在设置视图+过滤器后需要重新绑定datagrid。非常感谢!