在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>
由于
答案 0 :(得分:0)
我对这个问题有所了解。我将使用LoadingRow和UnloadingRow事件,并从加载的行,我可以获取数据发送到远程设备。这些事件只会在滚动数据网格时触发,因此我可以从通信层中删除不可见数据并注册新的可见数据进行通信。 这些事件不会在DataGrid人群中被触发,所以我必须管理这个特殊的场景。
对于感兴趣的人,有一些更多的想法是here。