Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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# 如何从DataContext获取非类型化的ObservableCollection?_C#_Windows 8_Observablecollection_Untyped Variables - Fatal编程技术网

C# 如何从DataContext获取非类型化的ObservableCollection?

C# 如何从DataContext获取非类型化的ObservableCollection?,c#,windows-8,observablecollection,untyped-variables,C#,Windows 8,Observablecollection,Untyped Variables,我需要从DataContext获取一个非类型化的QueryableCollection来查询它。我有以下代码: printAbleListView = (ListView) printObject.FindName("printAbleListView"); // Here I like to have something like ObservableCollection<Object> ObservableCollection<Journal> allItems =

我需要从DataContext获取一个非类型化的QueryableCollection来查询它。我有以下代码:

printAbleListView = (ListView) printObject.FindName("printAbleListView");
// Here I like to have something like ObservableCollection<Object>
ObservableCollection<Journal> allItems = (ObservableCollection<Journal>) printAbleListView.DataContext;

// Add the page to the page preview collection
for (int i = 0; i <= (allItems.Count()/30); i++)
{
  printAbleListView.DataContext = null;
  printAbleListView.DataContext = allItems.Skip(30 * i).Take(30);
  document.SetPreviewPage((i + 1), printObject);
}
printAbleListView=(ListView)printObject.FindName(“printAbleListView”);
//在这里,我喜欢有一些像可观察的收集
ObservableCollection allItems=(ObservableCollection)printAbleListView.DataContext;
//将页面添加到页面预览集合
对于(int i=0;i示例:

void GeneratePreview<T>(int itemsPerPage)
{
    var printAbleListView = (ListView)printObject.FindName("printAbleListView");
    var allItems = (ObservableCollection<T>)printAbleListView.DataContext;

    // Add the page to the page preview collection
    for (int i = 0; i <= (allItems.Count()/itemsPerPage); i++)
    {
      printAbleListView.DataContext =
              allItems.Skip(itemsPerPage * i).Take(itemsPerPage);
      document.SetPreviewPage((i + 1), printObject);
    }
}
例如:

void GeneratePreview<T>(int itemsPerPage)
{
    var printAbleListView = (ListView)printObject.FindName("printAbleListView");
    var allItems = (ObservableCollection<T>)printAbleListView.DataContext;

    // Add the page to the page preview collection
    for (int i = 0; i <= (allItems.Count()/itemsPerPage); i++)
    {
      printAbleListView.DataContext =
              allItems.Skip(itemsPerPage * i).Take(itemsPerPage);
      document.SetPreviewPage((i + 1), printObject);
    }
}

也许你只是想让函数泛化?也许,但我不知道怎么做。你能举个例子吗?也许你只是想让函数泛化?也许,但我不知道怎么做。你能举个例子吗?thx,我会试试这个。对于你的问题,基本上我希望ListView在每次迭代中只显示30个条目。有更简单的方法吗?@Jan:嗯,但是代码会通过所有的迭代而不等待,你总是会得到最后一个。我会修改代码,等一下…@Jan:哦,我想我看到了逻辑。你的意思是
document.SetPreviewPage
会在每次迭代中拍摄
printObject
的快照吗?是的,
printObject
应该是它的快照每个迭代都是一页。这很好,但我希望它不被类型化。我仍然需要调用您的类型化函数(例如,
GeneratePreview(30);
)。是否有可能获取类型并将其传递给泛型函数。类似于
GeneratePreview(30)之类的
?@Jan:添加了具有非类型化访问权限的版本。对于非类型化版本,没有LINQ工具可用,不需要稍微重新构造逻辑。thx,我会尝试一下。对于你的问题,基本上我希望ListView在每次迭代中只显示30个条目。有没有更简单的方法?@Jan:嗯,但是代码将通过所有迭代而不显示w等待,你总是会得到最后一个。我会修改代码,等一下…@Jan:哦,我想我看到了逻辑。你的意思是
document.SetPreviewPage
在每次迭代时都会对
printObject
进行快照吗?是的,
printObject
应该是ListView中30项的快照,以便打印出来。每次迭代是一页。这可以工作,但我希望它不类型化。我仍然需要调用您的类型化函数(例如,
GeneratePreview(30);
)。是否有可能获取类型并将其传递给泛型函数。类似于
GeneratePreview(30);
?@Jan:添加了具有非类型化访问的版本。对于非类型化版本,没有可用的LINQ工具,不需要稍微重新构造逻辑。