2011-06-10 100 views
2

在一列可編輯且其他列只能讀取的數據網格中。如何設置WPF數據網格單元格的可點擊區域?

不可編輯列綁定到集合中的可爲空的小數字段,最初爲NULL,因此該列中不存在任何值。

當試圖點擊這個單元格來獲取數據網格進入編輯模式時,點擊目標非常小,難以點擊。

如何設置此類單元格的點擊目標大小?

I would like the clickable area to be the entire cell, highlighted as shown

回答

0

如果定義在DataGrid自己的欄,你可以設置在列的minWidth屬性,這樣總有空間去點擊,即使值爲空或很短。例如:

<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn 
      MinWidth="100" 
      Header="Phone" 
      Binding="{Binding Path=PhoneNumber}" /> 
    </DataGrid.Columns> 
</DataGrid> 
+0

我定義我自己列,但設置的最小寬度不執行任何操作,以增加小區的面積是可點擊您使用 – vzczc 2011-06-12 11:46:22

+0

哪個DataGrid的版本?當我使用WPF 4附帶的DataGrid進行測試時,我可以單擊單元格中的任何位置(通過屏幕截圖中的黃色突出顯示),然後我可以進入編輯模式。 – Kendrick 2011-06-12 13:43:37

+0

那麼,我有VS2010 SP1所以,我猜這是最新版本。也許有某種屬性可以定義不同的行爲。我只能點擊包含數據的單元格的區域 – vzczc 2011-06-14 06:19:09

1

在數據網格中,使用選擇單元= 「FullRow」。定義一個默認的DataGridCell樣式,並在此基礎上的所有其他DataGridCell樣式。然後向DataGrid添加一個行樣式。這給你一種選擇整行的方法,併爲Focused單元格設置另一種顏色。整個單元格背景都是在樣式中指定的顏色。

<Style TargetType="DataGridCell" x:Key="DgcDefault"> 
    <Setter Property="BorderBrush" Value="Transparent"/> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="Foreground" Value="Black"/> 
    <Style.Triggers> 
     <Trigger Property="IsFocused" Value="True"> 
     <Setter Property="Background" Value="#FF83B2DD"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

<DataGrid.RowStyle> 
    <Style TargetType="DataGridRow"> 
     <Setter Property="Background" Value="White"/> 
     <Style.Triggers> 
     <Trigger Property="AlternationIndex" Value="1"> 
      <Setter Property="Background" Value="AliceBlue"/> 
     </Trigger> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="LightBlue"/> 
     </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.RowStyle> 
相關問題