从Datagrid中的当前编辑单元格中获取文本

时间:2014-08-27 19:49:43

标签: c# .net wpf

我想阅读用户正在编辑的当前单元格的文本。我想根据用户在数据网格控件中的单元格上键入内容来过滤列表框。我想在数据网格的KeyDown事件上实现它,但我找不到一种方法来读取单元格的值。我想读取用户输入的值,而不是用户按Enter键后的最终编辑值。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这可能会对你有所帮助。拿一个look

void dgvDemo_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
TextBox txt = e.Control as TextBox;
if (txt != null)
 {
    txt.KeyPress += new
   KeyPressEventHandler(txt_KeyPress);
 }
}

void txt_KeyPress(object sender, KeyPressEventArgs e)
{
 MessageBox.Show(e.KeyChar.ToString());
}

此示例我在WPF中完成。

  <DataGrid Grid.Row="1" ItemsSource="{Binding List}" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding MyName}"></TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding MyName}" KeyUp="TextBox_KeyUp"></TextBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

代码隐藏

 private void TextBox_KeyUp(object sender, KeyEventArgs e)
    {

    }

请检查,这可能对您有所帮助