PLinqInstantFeedbackSource
グリッドにデータを入力するときに使用しています。
PLinqInstantFeedbackSource pLinqInstantFeedbackDataSource = new PLinqInstantFeedbackSource();
pLinqInstantFeedbackDataSource.GetEnumerable += pLinqInstantFeedbackDataSource_GetEnumerable;
gridControl.ItemsSource = pLinqInstantFeedbackDataSource;
gridControl.DataContext = SomeViewModel;
private void pLinqInstantFeedbackDataSource_GetEnumerable(object sender, DevExpress.Data.PLinq.GetEnumerableEventArgs e)
{
e.Source = SomeViewModel.GetList();
}
したがって、次を使用してすべての行を選択すると、次のようになります。
((DevExpress.Xpf.Grid.TableView)gridControl.View).SelectAll();
すべての行を選択しているようです。したがって、これは正常に機能していますが、すべての行が表示またはフェッチされるようにユーザーが下にスクロールしていません。
だから今、私はすべての行をループし、以下を使用して行オブジェクトを取得したいと思います:
var selectedRowHandles = ((DevExpress.Xpf.Grid.TableView)gridControl.View).GetSelectedRowHandles().AsEnumerable();
foreach (var item in selectedRowHandles)
{
SomeViewModel.SelectedItems.Add((SomeEntityObject)gridControl.GetRow(item));
}
これは、表示されているすべての行で正常に機能しているようですが、表示されていない次の行を取得しようとすると、例外がスローされます。
InvalidCastException
Unable to cast object of type 'DevExpress.Data.NotLoadedObject' to type 'SomeEntityObject'.
したがって、行が表示されていないときにPLinqInstantFeedbackSourceを使用するときにGridControlのすべての行を取得する方法。