# WPF DataGrid文字編輯驗證
-
dataGrid.Items.Count 得到dataGrid數量
-
dataGrid.SelectedIndex 得到選擇的Index
-
JOBIN model = this.dataGrid.Items[Index] as JOBIN 得到JOB型別的選中行的model資料
-
DataGrid文字編輯驗證
CellEditEnding = “DataGridCellEdit” // xaml 註冊事件
在DataGridCellEdit事件中 程式碼
string newvalue = (e.EditingElement as TextBox).Text.ToUppe(); //等到當前編輯的文字內容
int rowcount = this.getCellRow(dataGrid) ; //得到當前選中行的index
model .[rowcount ].NewValue = newvalue ; //把當前輸入的文字給到model 裡面
-
在做一個專案時在gird上添加了右鍵選單,可測試時在grid的空白區域就時彈不出選單來。
因為grid預設是Background="{x:Null}",無法獲取到滑鼠點選的EventArgs(就相當於空的面板)。 你設定成Background="Transparent" 透明色就可以實現了。
-
你可以使用控制元件的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判斷)