2011-06-10 5 views
2

하나의 열을 편집 할 수 있고 다른 열은 읽기 전용 인 DataGrid에서.WPF DataGrid 셀의 클릭 가능 영역을 어떻게 설정할 수 있습니까?

편집 할 수없는 열은 컬렉션의 nullable decimal 필드에 바인딩되며 처음에는 NULL이므로 해당 열에 값이 없습니다.

이 셀을 클릭하여 편집 모드로 데이터 그릿을 가져 오려고하면 클릭 타겟이 너무 작아 클릭하기 어렵습니다.

어떻게 그러한 셀의 클릭 타겟 크기를 설정할 수 있습니까? 당신은 데이터 그리드에서 자신의 열을 정의하는 경우를 클릭 항상 공간이있다 있도록

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

답변

0

, 당신은 값이 비어 있거나 매우 짧은 경우에도, 컬럼에서의 minWidth 속성을 설정할 수 있습니다. 예를 들면 : 데이터 그리드에서

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

난 내 자신의 열을 정의하지만, 아무것도 데이터 그리드의 – vzczc

+0

어떤 버전을 사용하고 클릭 할 셀의 면적을 증가하지하는 않는 최소 폭을 설정하는 건가요? WPF 4와 함께 제공되는 DataGrid를 사용하여 테스트 한 결과, 셀의 아무 곳이나 클릭 할 수있었습니다 (스크린 샷의 노란색 강조 표시로 표시됨). 그러면 편집 모드로 들어갈 수 있습니다. – Kendrick

+0

음, VS2010 SP1을 가지고 있으므로 최신 버전이라고 생각합니다. 아마도 다양한 행동을 정의하는 속성이 있습니다. 데이터가 포함 된 셀 영역 만 클릭 할 수 있습니다. – vzczc

1

, 선택 단위 = "FullRow"를 사용합니다. 기본 DataGridCell Style을 정의하고 다른 모든 DataGridCell 스타일을 기본으로 만듭니다. 그런 다음 DataGrid에 행 스타일을 추가합니다. 이렇게하면 전체 행을 선택하고 집중된 셀에 다른 색상을 지정할 수 있습니다. 그리고 전체 셀 배경은 스타일에 지정된 색상입니다.

<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> 
관련 문제