C# DataView.Rowfilter循环中的多个筛选器

C# DataView.Rowfilter循环中的多个筛选器,c#,wpf,dataview,rowfilter,C#,Wpf,Dataview,Rowfilter,在这里,循环DV只针对ConditionQueue中的最后一个元素进行过滤。在应用了队列上的所有筛选条件的情况下,如何获取DV? ConditonQueue.ElementAti返回一个字符串,该字符串是RowFilter的有效表达式 在我的场景中,合并所有ConditonQueue.ElementAti不会有帮助。我希望每次都应用RowFilter 因为我需要在每个行过滤器之后做一些计算。所有条件都没有帮助 每次在循环中应用RowFilter时,是否有其他方法重新创建DV?RowFilter将

在这里,循环DV只针对ConditionQueue中的最后一个元素进行过滤。在应用了队列上的所有筛选条件的情况下,如何获取DV? ConditonQueue.ElementAti返回一个字符串,该字符串是RowFilter的有效表达式

在我的场景中,合并所有ConditonQueue.ElementAti不会有帮助。我希望每次都应用RowFilter


因为我需要在每个行过滤器之后做一些计算。所有条件都没有帮助


每次在循环中应用RowFilter时,是否有其他方法重新创建DV?

RowFilter将自动应用于数据视图中的所有行。正确的用法是将队列的所有条件组合成适当的字符串表达式,并将该表达式传递给RowFilter属性


还可以查看行筛选器语法的示例。

行筛选器列表将自动应用于数据视图中的所有行。正确的用法是将队列的所有条件组合成适当的字符串表达式,并将该表达式传递给RowFilter属性


还可以查看行筛选器语法的示例。

由于您的问题不清楚,因此有很多假设。试试这个

DataView DV = DataTable.AsDataView();
for(int i=0; i<ConditonQueue.Count; i++)
{
     DV.RowFilter = ConditonQueue.ElementAt(i);
}
我不喜欢您的方法,很抱歉,但我认为您必须更新DV,以便将新过滤器应用于已过滤的视图

DataView DV = DataTable.AsDataView();

string[] filter = new string[ConditonQueue.Count];
for(int i=0; i<ConditonQueue.Count; i++)
{
     filter[i] =  ConditonQueue.ElementAt(i).ToString();
}

DV.RowFilter = String.Join(" AND ", filter); // filter1 AND filter2 AND ... AND filterN

很多假设,因为你的问题不清楚。试试这个

DataView DV = DataTable.AsDataView();
for(int i=0; i<ConditonQueue.Count; i++)
{
     DV.RowFilter = ConditonQueue.ElementAt(i);
}
我不喜欢您的方法,很抱歉,但我认为您必须更新DV,以便将新过滤器应用于已过滤的视图

DataView DV = DataTable.AsDataView();

string[] filter = new string[ConditonQueue.Count];
for(int i=0; i<ConditonQueue.Count; i++)
{
     filter[i] =  ConditonQueue.ElementAt(i).ToString();
}

DV.RowFilter = String.Join(" AND ", filter); // filter1 AND filter2 AND ... AND filterN

RowFilter需要一个字符串表达式,与SQL的WHERE语句非常相似,但有一些区别。ConditonQueue.ElementAti的返回值是多少?ConditonQueue.ElementAti返回字符串。哪一个表达式适合于RowFilter。那么这段代码有什么问题?在控件退出循环后,DV将根据ConditonQueue中的最后一个表达式元素进行过滤。RowFilter需要一个字符串表达式,非常类似SQL的WHERE语句,但有一些不同。ConditonQueue.ElementAti的返回值是多少?ConditonQueue.ElementAti返回字符串。哪一个表达式适用于RowFilter。那么这段代码有什么问题?控制退出循环后,DV将根据ConditonQueue中的最后一个表达式元素进行过滤。在我的场景中,对所有条件进行ANDing都没有帮助。我希望每次都应用RowFilter。在我的场景中,与所有条件进行ANDing都没有帮助。我希望每次都应用RowFilter。在每次RowFilter之后,我需要进行一些计算。所有的条件都没有用。我不确定你想要达到什么。当需要进行计算时,请将条件应用于行过滤器,进行计算并应用下一个条件,依此类推。或者提供更多您想要做的信息。DV=DV.ToTable.AsDataView;在RowFilter之后的循环中是我问题的解决方案。谢谢。我需要在每个行过滤器之后做一些计算。所有的条件都没有用。我不确定你想要达到什么。当需要进行计算时,请将条件应用于行过滤器,进行计算并应用下一个条件,依此类推。或者提供更多您想要做的信息。DV=DV.ToTable.AsDataView;在RowFilter之后的循环中是我问题的解决方案。谢谢