2011-10-14 33 views
2

我在我的WPF應用程序中使用codeplex中的DataGrid。 我已經定義了一些DatagridTemplateColumns。數據素材模板可以包含一個TextBox或一個ComboBox,具體取決於ViewModel中的數據。如何在DataGrid中獲得類似Excel的行爲?

用戶可以使用箭頭鍵遍歷網格元素。而當用戶按下輸入時,它會進入下一行。這些行爲很好。

當用戶使用箭頭鍵和某些字符(如a,b,c等除Tab,Enter等之外的類型)來到某個特定單元格時,問題出現。我希望TextBox或ComboBox接收焦點並且自動進入編輯模式。

我在DataGridCell樣式中設置了IsTabStop false。所以當我按下一個單元格中的Tab鍵時,它會自動進入下一個單元格的TextBox或ComboBox。 但方向鍵不會發生同樣的情況!

我不明白我該怎麼做?

回答

2

要讓單元格自動進入編輯模式,您可以在單元格中捕獲預覽鼠標左鍵,並在事件處理函數中設置單元格中的焦點並將其選中。

您可以將事件數據網格細胞爲註冊,

<Style TargetType="{x:Type datagrid:DataGridCell}" x:Key="cellStyle"> 
     <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" /> 

,然後在處理程序可以檢查鍵盤功能鍵,以及這樣就可以避免場景,如CTRL +點擊和東西如果你想。

相關問題