DataGridを使用したWPFプロジェクトがあります。MVVMパターンを使用しています。それは私のVMの一部です:
class LibraryViewModel
{
#region Members
//private SimpleLibDBEntities _database;
ObservableCollection<BooksViewModel> _books = new ObservableCollection<BooksViewModel>();
int count = 0;
int sizeOfdb = 1000000;
#endregion
public ObservableCollection<BooksViewModel> Books
{
get
{
return _books;
}
set
{
_books = value;
}
}
public LibraryViewModel()
{
Task task = Task.Factory.StartNew(Generator);
}
private void Generator()
{
for (count = 0; count < sizeOfdb; count++)
{
_books.Add(new BooksViewModel { Book = new BooksSet { Id = count, Title = "Title"+count, Author = "Author", Publisher = "Publisher", Year = 1000, Note = "Note" } });
}
}
それは機能しますが、私のDataGridは、私のint sizeOfdb = 1000000要素ではなく、約50 000 -100 000要素(ランダム)しか表示しません。なぜそれがうまくいくのですか?それを修復する方法は?(「タスク」なしですべてが正常に機能します)
そして、この例でasync / awaitをどのように使用できますか?そんな感じ?(動作しません。Dispathcherを使用してみてください?)
public LibraryViewModel()
{
GeneratorAsync();
}
private async void GeneratorAsync()
{
await Task.Factory.StartNew(()=>{
for (count = 0; count < sizeOfdb; count++)
{
_books.Add(...);
}
});
}