【UE源码向】DataTable搜索过滤表行的原理
UE 在 DataTable 中搜索时发生了什么
- 
内部数据:DataTableEditor 中存了一份所有表行的文本信息 AvailableRows,在表格 HandlePostChange() 中会调用 RefreshCachedDataTable() 刷新填充 AvailableRows 
  
  
- 
如何填充:遍历所有表行,拿到 Struct 中的所有 Property,通过调用 DataTableUtils::GetPropertyValueAsText(),内部以 JsonWriter 以Json格式写入到字符串中保存到 AvailableRows 
  
- 
搜索流程:响应到 SearchBox 控件的输入后,回调到 FDataTableEditor::OnFilterTextChanged() 根据输入字符串 逐Row逐 CellData 关键字搜索,然后把 AvailableRows 中过滤后的结果存到 VisibleRows 中,最后交给CellsListView 去做UI更新 
  

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号