0

在 MVVM 中工作时,有什么方法可以知道 WPF DataGrid 上哪些数据对象可见?我与对象模型绑定的 DataGrid 具有许多过滤器操作,并且仅根据所选过滤器显示过滤后的数据。我必须解决一个优化问题。此处描述了问题的简要说明。

在远程通信期间,我通过 GSM 调制解调器将绑定到 DataGrid 的所有数据发送到远程设备。因为大多数时候我有太多的数据绑定到 DataGrid(即使在选择了特定的过滤器之后),我希望只发送当前可见的数据以优化通信。

我可以解释是否有人需要更多细节。

这是 DataGrid 如何与 WPF 中的 Items Source 绑定的。

        <toolkitControls:AdvancedDataGrid x:Name="RecordEditorTable"
                                      Grid.Column="2" Grid.Row="2" Grid.RowSpan="2" 
                                      Style="{StaticResource {x:Type DataGrid}}"
                                      AutoGenerateColumns="False"
                                      SelectionMode="Extended"
                                      CanUserDeleteRows="False"
                                      ItemsSource="{Binding FilteredRecords}"
                                      ScrollViewer.CanContentScroll="True"
                                      cal:Message.Attach="[BeginningEdit] =  [BeginningEditing($eventArgs)]; [RowEditEnding] = [RowEditEnding($eventArgs)]; [SelectionChanged] = [RecordEditorTable_SelectionChanged($eventArgs)]; 
                                      AllowDrop="True">...</toolkitControls:AdvancedDataGrid>

谢谢

4

1 回答 1

0

我对这个问题有一个想法。我将使用 LoadingRow 和 UnloadingRow 事件,并从加载的行中获取要发送到远程设备的数据。这些事件将仅在滚动数据网格时触发,因此我可以从通信层删除不可见数据并注册新的可见数据以进行通信。这些事件不会在 DataGrid 人口上被触发,所以我必须管理这个特殊的场景。

对于那些感兴趣的人,还有一些想法在这里

于 2013-07-12T09:24:01.613 回答