2016-10-14 14 views
0

은 내가 선택할 수있는 정적 목록이있는 DataGridComboBoxColumn를 만들기 위해 노력하고 있어요 아래로 :WPF DataGridComboBoxColumn이 컨텍스트 메뉴를 표시하지 않습니까? 여기 <p></p> 완료 진행 중, 시작하지, 나는 XAML에서 무엇을하고 그것을 잘 구축하는 동안 드롭의 옵션을 볼 수 없습니다 :

나는 왜 다른 방식으로 작동하지 않는지 이해하지 못한다. 다른 DataGrid.ContextMenu의 작업. 나는 여기에서 정말로 쉬운 무엇인가 놓치고있는 것처럼 느낀다.

답변

1

당신이 CompositeCollection를 사용할 수 있습니다

<DataGridComboBoxColumn Header="Status" Width="auto" IsReadOnly="False" SelectedItemBinding="{Binding Path=Value}"> 
       <DataGridColumn.HeaderStyle> 
        <Style TargetType="DataGridColumnHeader"> 
         <Setter Property="Background" Value="LightGoldenrodYellow" /> 
         <Setter Property="BorderThickness" Value="2,2,0,2" /> 
        </Style> 
       </DataGridColumn.HeaderStyle> 
       <DataGridComboBoxColumn.ItemsSource> 
        <CompositeCollection> 
         <sys:String>Not Started</sys:String> 
         <sys:String>In Progress</sys:String> 
         <sys:String>Completed</sys:String> 
        </CompositeCollection> 
       </DataGridComboBoxColumn.ItemsSource> 
      </DataGridComboBoxColumn> 

네임 스페이스 추가

xmlns:sys="clr-namespace:System;assembly=mscorlib" 
+0

나는이 모양이 마음에 들지만 선택한 값을 셀에 남겨 둘 수있는 방법이 있습니까? 다른 셀을 클릭하면 값이 사라집니다. – user3486773

+0

예, 선택한 항목을 추가하고 바인딩합니다. 나는 대답을 업데이트 할 것이다. – Rom

+0

데이터베이스의 값에 대한 기본 바인딩을 가질 수 있습니까? 따라서 현재 값을 표시하지만 사용자가 새 값을 선택하도록 허용 하시겠습니까? – user3486773

0

ContextMenuService가의 ContextMenu

을 표시하기위한 시스템 구현을 제공합니다

당신이 원하는 것은 너무 멀리 떨어져 것과 아니다 너 이미 먹었어. 그 테스트 나를 위해 작동 :

<DataGridComboBoxColumn Header="Status" Width="auto" IsReadOnly="False" > 
    <DataGridColumn.HeaderStyle> 
     <Style TargetType="DataGridColumnHeader"> 
      <Setter Property="Background" Value="LightGoldenrodYellow" /> 
      <Setter Property="BorderThickness" Value="2,2,0,2" /> 
     </Style> 
    </DataGridColumn.HeaderStyle> 
    <DataGridComboBoxColumn.CellStyle> 
     <Style TargetType="DataGridCell"> 
      <Setter Property="ContextMenu"> 
       <Setter.Value> 
        <ContextMenu> 
         <MenuItem Header="Not Started" /> 
         <MenuItem Header="In Progress" /> 
         <MenuItem Header="Completed" /> 
        </ContextMenu> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGridComboBoxColumn.CellStyle> 
</DataGridComboBoxColumn> 

는 현재 휴대 클릭 작동하도록 설정하지만, 쉽게 머리글 또는 둘 모두 설정할 수 있습니다.

+0

이것은 작동하지만 셀에 표시되지 않는 값을 클릭하면 작동합니다. – user3486773

+0

이 작품과 아마 내 직접적인 방법으로 내 질문에 대답하지만, 내가 그것에 대해 원래가는 방식으로 컨텍스트 메뉴를 표시 할 줄 몰랐지만, 이것이 실제로 작동하지 않습니다! – user3486773