WPF DataGrid Take()不适用于ItemsSource
我正在尝试将DataGrid绑定到阵列以进行测试。 只要我不想过滤任何东西,自动列就可以很好地工作 只要我尝试按.Take5或任何其他过滤器过滤数组,行就会保持为空,并且只有水平线。我认为这可能与Take生成的匿名类有关。但这是一个疯狂的猜测 让我向您展示一些代码,这些代码可以很好地工作,并满足我的要求:WPF DataGrid Take()不适用于ItemsSource,wpf,linq,filter,Wpf,Linq,Filter,我正在尝试将DataGrid绑定到阵列以进行测试。 只要我不想过滤任何东西,自动列就可以很好地工作 只要我尝试按.Take5或任何其他过滤器过滤数组,行就会保持为空,并且只有水平线。我认为这可能与Take生成的匿名类有关。但这是一个疯狂的猜测 让我向您展示一些代码,这些代码可以很好地工作,并满足我的要求: public partial class WindowLister : UserControl { private int counter = 0; public Window
public partial class WindowLister : UserControl
{
private int counter = 0;
public WindowLister()
{
InitializeComponent();
dataGrid1.ItemsSource = SystemWindow.FilterToplevelWindows(filterFunction);
}
private bool filterFunction(SystemWindow window)
{
counter++;
if (counter > 5) return false;
return true;
}
}
现在是不起作用的版本:
public partial class WindowLister : UserControl
{
public WindowLister()
{
InitializeComponent();
dataGrid1.ItemsSource = SystemWindow.FilterToplevelWindows(filterFunction).Take(5);
}
private bool filterFunction(SystemWindow window)
{
return true;
}
}
对于任何感兴趣的人来说,使用的源代码都来自非常好的库:ManagedWinapi.Windows
感谢您的帮助。。。
Chris我希望您需要一个列表Take/Where etc将为您提供一个IEnumerable/IQueryable序列。尝试使用.Take5.ToList或.Where…ToList等Where。。。是您的过滤器。完美。。。我喜欢这个网站:-谢谢!