1. 程式人生 > 實用技巧 ># WPF DataGrid文字編輯驗證

# 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判斷)