2014-12-18 7 views
0

내 프로그램에는 4 개의 다른 열이있는 DataGrid이 있습니다. 열 중 하나에서 편집을 위해 셀을 선택하면 프로그래밍 방식으로 해당 셀의 내용을 변경할 수 있도록 만들고 싶습니다. 예를 들어, 편집시 선택한 셀의 현재 string 값이 "selected"으로 변경 될 수 있습니다. DataGridCell 클래스 here을 살펴본 결과 실제로 셀을 편집하는 것을 발견하지 못했습니다. xaml에서 각 DataGridTextColumn에 대해 "cellClick"이벤트가 발생하면 좋을 것입니다. 어떻게 이런 유형의 핸들러를 얻을 수 있습니까?DataGridCell을 편집 할 때 이벤트와 같은 "명령"을 만드는 방법

DataGrid의 XAML :

<DataGrid ItemsSource="{Binding SysModel.SystemCollection}" MinColumnWidth="50" ColumnHeaderStyle="{StaticResource HeaderStyle}" RowStyle="{StaticResource RowStyleWithAlternation}" CellStyle="{StaticResource CenterCellStyle}" 
      RowHeaderWidth="0" AlternationCount="2" GridLinesVisibility="Horizontal" SelectionUnit="Cell" CanUserAddRows="False" AutoGenerateColumns="False" Height="471" Name="dataGrid1" Width="468" Canvas.Left="40" Canvas.Top="17"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="{DynamicResource cart}" Width="Auto" IsReadOnly="True" Binding="{Binding cartNum}" /> 
     <DataGridTextColumn Header="{DynamicResource ipAddress}" Width="100" IsReadOnly="False" Binding="{Binding ipAddress}" /> 
     <DataGridTextColumn Header="{DynamicResource portNumber}" Width="70" IsReadOnly="False" Binding="{Binding PortNumber}" /> 
     <!-- **This is the column that contains the cells I want to have this event for** --> 
     <DataGridTextColumn Header="{DynamicResource configuration}" Width="*" IsReadOnly="False" Binding="{Binding Configuration}" /> 
     </DataGrid.Columns> 
     <DataGrid.Resources> 
      <SolidColorBrush Color="#726AA5" x:Key="{x:Static SystemColors.HighlightBrushKey}" /> 
     </DataGrid.Resources> 
</DataGrid> 

답변

0

DataGridCell 불이 선택되어 Selected 이벤트입니다. 나는 그것이 사용자에 의해 편집되기 전에 선택되어야한다고 추정한다.

출처 : DataGridCell Events

+0

당신이 MVVM 라이트에서'EventToCommand'를 사용할 수있는 명령에 이벤트를 변환합니다. http://msdn.microsoft.com/en-us/magazine/dn237302.aspx (그림 9) – Aybe

+0

팁 주셔서 감사합니다. 제목을 제외하고는 질문에 대한 언급이 없으므로 무시했습니다. 그러나 예, @ ICommand 구현에 바인딩 할 의도가있는 경우 @ EventToCommand를 올바르게 사용하도록 제안했습니다. –