# WPF DataGrid文本编辑验证

  1. dataGrid.Items.Count 得到dataGrid数量

  2. dataGrid.SelectedIndex 得到选择的Index

  3. JOBIN model = this.dataGrid.Items[Index] as JOBIN 得到JOB类型的选中行的model数据

  4. DataGrid文本编辑验证

    CellEditEnding = “DataGridCellEdit” // xaml 注册事件

    在DataGridCellEdit事件中 代码

    string newvalue = (e.EditingElement as TextBox).Text.ToUppe(); //等到当前编辑的文本内容

    int rowcount = this.getCellRow(dataGrid) ; //得到当前选中行的index

    model .[rowcount ].NewValue = newvalue ; //把当前输入的文本给到model 里面

  5. 在做一个项目时在gird上添加了右键菜单,可测试时在grid的空白区域就时弹不出菜单来。

    因为grid默认是Background="{x:Null}",无法获取到鼠标点击的EventArgs(就相当于空的面板)。 你设置成Background="Transparent" 透明色就可以实现了。

  6. 你可以使用控件的PreviewTextInput 事件来阻止控件接收某些输入的字符。

    要防止某个特定的字符输入到控件,你只要简单的设置TextCompositionEventArgs 类型参数的Handled 属性为true就可以。它将中断控件接收字符输入事件的路由。

    在XAML代码中注册事件:

    <TextBox Text="" HorizontalAlignment="Center" Width="150"     PreviewTextInput="TextBox_PreviewTextInput" />
    

    CS文件代码中实现事件处理函数:

    private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)    {        // No e's allowed        if ((e.Text == "e") || (e.Text == "E"))            e.Handled = true;    }
        
    

    我们组织了‘e’和‘E’这两个字符的输入,在TextBox 中输入这两个字符将不会被接收。

    在XAML代码中注册PreviewKeyDown 在CS文件事件中 e.Handled = true 禁止输入(去掉Input中的if判断)

posted @ 2020-09-08 20:00  DingGuo  阅读(615)  评论(0编辑  收藏  举报