0
我有一個包含幾個名稱 - 值對的DataGrid,所述名稱 - 值對從硬件設備輪詢。爲了提高性能(輪詢循環而不是UI)我想知道綁定的哪些項目被顯示。DataGrid只更新顯示的行
<DataGrid Grid.Row="1" ItemsSource="{Binding ParameterViewSource.View}"
AutoGenerateColumns="False" CanUserReorderColumns="False"/>
DataGrid現在可以默認虛擬化行。但是對於我的後臺輪詢循環,我想知道我的CollectionViewSource的哪些項目目前在RowPresenter中。
該方法應該可以在MVVM中實現。
我試圖使用DataGridRowsPresenter - 和兒童(或更具體的DataContext),但我無法得到有關更改的通知。有沒有什麼簡單的方法來實現我想要的。
private static void GridOnLoaded(object sender, RoutedEventArgs routedEventArgs)
{
DataGrid grid = (DataGrid)sender;
var rowPresenter = grid.FindChildRecursive<DataGridRowsPresenter>();
var items = rowPresenter.Children.OfType<DataGridRow>()
.Select(x => x.DataContext);
//Works but does not get notified about changes to the Children
//collection which occure if i resize the Grid, Collapse a
//Detail Row and so on
}
你能否給我們提供一些代碼 –