2013-10-02 59 views
4

DataGrid中搜索我有一个DataGrid,我想用TextBox和搜索按钮添加搜索选项。结果应该是基于文本框内容选择整行。通过文本框

我的代码是这样的:

public void search() 
{ 
    String searchValue = textBox1.Text; 
    int rowIndex = -1; 
    foreach (//Row in MydataGrid) 
    { 
     if (row.Cells[1].Value.ToString().Equals(searchValue)) 
     { 
      rowIndex = row.Index; 
      break; 
     } 
    } 
} 
+0

呃,所有相关链接都是sl ... [Here](http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.filter.aspx)... – UIlrvnd

+3

是否有一个原因,你不只是搜索绑定的项目? –

+0

使用collectionViewSource? –

回答

1

比方说,你正在寻找一些列具有此此组类:

public class Group 
{ 
    public string Name { get; set; } 
    public string FilePath { get; set; } 
} 

而且我有DataGrid中列调用只有Group.Name:

<DataGrid Name="dtgGroups"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Group" Binding="{Binding Name}" /> 
    </DataGrid.Columns> 
</DataGrid> 

所以,如果你想在Datagrid中搜索一个特定的名字,您可以使用:

private Group SearchGroup(string searchName) 
{ 
    foreach (Group g in dtgGroups.Items) 
    { 
     if (g.Name == searchName) return g; 
    } 

    return null; 
} 

然后它会返回您搜索的组。

+0

你好Butzke,谢谢你的快速响应,我在执行搜索时出现错误:+ \t \t _ex \t {System.InvalidCastException:无法强制类型为'System.Data.DataRowView'的对象输入'TestInfo'。在C:\ Users \ Danip \ Desktop \ WpfApplication1.MainWindow.SearchTestInfo(String searchName)中删除\ WpfApplication1 \ WpfApplication1 \ MainWindow.xaml.cs:line 57}中的 \t System.Exception {System.InvalidCastException} –

+0

@DaniPedrossa你发布你的整个代码?很难说错误信息。 – Butzke

+0

我有在C驱动器的Excel文件,这个的.xls在DataGride1由类caled ExcelDataCMF1 ExcelDataCMF1 exceldata =新ExcelDataCMF1()加载; this.dataGrid1.DataContext = exceldata; xls文件包含(Int,String类型),之后我使用了你的代码并捕获异常!任何想法请 –