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>
당신이 MVVM 라이트에서'EventToCommand'를 사용할 수있는 명령에 이벤트를 변환합니다. http://msdn.microsoft.com/en-us/magazine/dn237302.aspx (그림 9) – Aybe
팁 주셔서 감사합니다. 제목을 제외하고는 질문에 대한 언급이 없으므로 무시했습니다. 그러나 예, @ ICommand 구현에 바인딩 할 의도가있는 경우 @ EventToCommand를 올바르게 사용하도록 제안했습니다. –