다음은 내가 당신과 같은 시나리오를 밟은 후 한 일입니다. 짧게는 선택 변경 이벤트를 직접 처리하고 이벤트 인수에서 선택한 행을 가져옵니다. "Row"소스 컬렉션을 각각 RowViewModel로 가정하고 "_selectedRows"컬렉션을 가정합니다.
<DataGrid RowsSource="{Binding Rows}" x:Name="Rows"
SelectionMode="Extended" SelectionUnit="FullRow">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cal:ActionMessage MethodName="SelectedRowsChangeEvent">
<cal:Parameter Value="$eventArgs" />
</cal:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
public void SelectedRowsChangeEvent(SelectionChangedEventArgs e)
{
foreach (var addedRow in e.AddedRows)
{
_selectedRows.Add(addedRow as RowViewModel);
}
foreach (var removedRow in e.RemovedRows)
{
_selectedRows.Remove(removedRow as RowViewModel);
}
}
? 저는 Telerik DataGrid를 사용하여 ContainerBinding을 할 수 있으므로 IsSelected를 Customers 컬렉션의 Customer에 바인딩 할 수 있습니다. 거기에서 선택한 항목을 쉽게 찾을 수 있습니다. –