C#WPF部分搜索DataGridView

C#WPF部分搜索DataGridView,c#,wpf,gridview,datagridview,filter,C#,Wpf,Gridview,Datagridview,Filter,我有一个窗口,在该窗口中,我将我的DataGrid源绑定到一个具有树状结构的DataTable。在窗口中,我有一个文本框和两个按钮(“包含”和“精确”)。以下是示例数据(文本)以及表格图像: Comedy English 21 Jump Street C Tatum J Hill 22 Jump Street C Tatum J Hill Dumb and Dumber J Carrey J Da

我有一个窗口,在该窗口中,我将我的DataGrid源绑定到一个具有树状结构的DataTable。在窗口中,我有一个文本框和两个按钮(“包含”和“精确”)。以下是示例数据(文本)以及表格图像:

Comedy
  English
    21 Jump Street
      C Tatum
      J Hill
    22 Jump Street
      C Tatum
      J Hill
    Dumb and Dumber
      J Carrey
      J Daniels
Action
  English
    Mission Impossible 5
      T Cruise
      J Renner
  Hindi
    Singham
      A Devgn
      K Agarwal

我有几件事想做:

使用输入的文本并根据单击的按钮,我想筛选GridView的最后一列(主要参与者)(只更新grid view,而不是保存到DataTable)。例如,键入“tum”并单击“exact”将执行类似于使用DataView对DataTable执行的搜索,在本例中,不会返回任何内容。单击“包含”按钮时,应返回(GridView表):

对“ar”的“包含”搜索应返回(在GridView表上):

我到处读到应该使用BindingSource(),但我不确定如何使用它(并返回层次结构,而不仅仅是匹配行)。我的实际数据可能会有唯一的最后一列(除非使用包含搜索)

最后,我有一个“导出”按钮,我想用它将当前的GridView导出为CSV

  • 要总结我需要的帮助,请执行以下操作:
  • 从GridView进行“包含”搜索
  • 从GridView进行“精确”搜索(BindingSource?)
  • 导出GridView数据(;获取错误atm)

我希望,我(准确地)提供了足够的信息以获得帮助。:)

我决定将表视图更改为普通行表,因此不需要层次结构视图。但是,我可以在部分搜索上使用一些帮助。我解决了这个问题:我解析了DataTable并检查输入字符串是否包含在列的文本中,如果包含,则将整行写入另一个表。最后,我将网格的源更改为新表。
Comedy
  English
    21 Jump Street
      C Tatum
    22 Jump Street
      C Tatum
Action
  Hindi
    Singham
      K Agarwal