2012-07-23 45 views
1

如果數據網格寬度大於列寬度之和,則在wpf數據網格中,將得到尾部空格。默認情況下,單擊此區域時不會選擇該行,也不會突出顯示選擇行來覆蓋此區域。最後一列之後的DataGrid尾部空格

如何將此區域的點擊註冊到選擇適當的行並允許選擇行突出顯示擴展到此區域。

這個問題: WPF DataGrid full row selection 是類似的,但我不能添加一個虛擬列,也不能將我的列寬設置爲*。

+0

是不是允許(例如按規範)將列寬設置爲*或您不知道如何去做? – EricSchaefer 2012-07-23 18:16:48

+0

是的,很不幸,我選擇了*選項(在上面的鏈接中),但這導致了其他問題。在datagrid區域有點複雜,不能那麼大(並且有相當數量的列),所以它需要水平滾動條。用戶還需要能夠隱藏和重新排列列。 – uc71 2012-07-23 21:56:02

回答

2
<DataGrid Name="dg"> 
    <DataGrid.RowStyle> 
     <Style TargetType="{x:Type DataGridRow}"> 
      <EventSetter Event="MouseLeftButtonDown" Handler="DataGridRow_MouseLeftButtonDown" /> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="{StaticResource {x:Static SystemColors.HighlightBrushKey}}" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </DataGrid.RowStyle> 
</DataGrid> 

背後

private void DataGridRow_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    dg.SelectedIndex = (sender as DataGridRow).GetIndex(); 
} 

應該工作的代碼。

+0

這很有用,非常感謝! – uc71 2012-07-23 22:54:45

+0

它的黑客,但工程 – GorillaApe 2012-11-13 11:40:09

相關問題