我正在尝试将DataGrid绑定到Array以进行测试。 只要我不想过滤任何东西,自动列就能很好地工作。
当我尝试通过.Take(5)或任何其他过滤器过滤数组时,行保持为空,并且只有水平线。我认为它可能有一些事情要做,由Take生成的“匿名”类。但这是一个疯狂的猜测...
让我向您展示一些效果很好的代码,并做我想做的事情:
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;
}
}
对于任何有兴趣的人来说,使用的来源是来自非常好的Lib:ManagedWinapi.Windows;
感谢任何帮助...... 克里斯
答案 0 :(得分:0)
我希望您需要一个列表(Take
/ Where
等会给您一个IEnumerable<T>
/ IQueryable<T>
序列。尝试使用.Take(5).ToList()
或.Where(...).ToList()
等(其中...
是您的过滤器)。