2010-04-24 2 views

답변

2

이러한 리소스는 방법에 당신을 도울 것입니다 :

WPF 당신이하는 데는 보통 볼 또 다른 마크 업 언어와 하나의 공통 일 XAML을 사용 태그가 많은 컨트롤에서 재사용된다는 것입니다. 당신이 위의 예에서 컨트롤 같은

  • RichTextBox
  • 데이터 그리드
  • 그리고 더 많은 ..

은 해당 항목에 대한 특정 메뉴를 creat에 할 수있는 Control.ContextMenu을 가지고 있음을 볼 수 있습니다. 위의 첫 번째 링크에서 촬영, RichTextBox

<RichTextBox> 
    <RichTextBox.ContextMenu> 
     <ContextMenu> 
     </ContextMenu> 
    </RichTextBox.ContextMenu> 
</RichTextBox> 

에이 예제를보고이는 ContextMenu에만 적용되지 않습니다! 이런 재사용 가능한 다른 요소가 있습니다. 사용중인 DataGrid에 따라 API를 조사해야하지만이 방법이 가장 효과적 일 수 있습니다.

0

DataGrid.ColumnHeaderStyle 또는 DataGrid.RowStyle을 각각 사용하여 데이터 격자 열 머리글 또는 데이터 모눈 행에 대한 컨텍스트 메뉴를 만들 수 있습니다. 예보기 :

<Window.Resources> 
    <ContextMenu x:Key="ColumnHeaderMenu"> 
     <MenuItem Header="Header Option 1"/> 
     <MenuItem Header="Header Option 2"/> 
    </ContextMenu> 
    <ContextMenu x:Key="RowMenu"> 
     <MenuItem Header="Row Option 1"/> 
     <MenuItem Header="Row Option 2"/> 
    </ContextMenu> 
</Window.Resources> 
<Grid> 
    <DataGrid ItemsSource="{Binding memberList}" AutoGenerateColumns="True"> 
     <DataGrid.ColumnHeaderStyle> 
      <Style TargetType="DataGridColumnHeader"> 
       <Setter Property="ContextMenu" Value="{StaticResource ColumnHeaderMenu}"/> 
      </Style> 
     </DataGrid.ColumnHeaderStyle> 
     <DataGrid.RowStyle> 
      <Style TargetType="DataGridRow"> 
       <Setter Property="ContextMenu" Value="{StaticResource RowMenu}"/> 
      </Style> 
     </DataGrid.RowStyle> 
    </DataGrid> 
</Grid>