DataGridのバインディングSelectedItemsを使用すると、問題を解決できます。次のコードをチェックしてください。
[更新]一見、selectedItemsのタイプはIListのように、それはINotifyCollectionChangedを実装することはないようだが、selectedItemsの実際のオブジェクト・タイプはinternal class SelectedItemCollection : ObservableCollection<object>
です。 [/更新]
XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<DataGrid Name="DS1" ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>
<DataGrid Grid.Row="1"
ItemsSource="{Binding ElementName=DS1, Path=SelectedItems}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
分離コード
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<Customer> customers = new List<Customer>();
for (int i = 0; i < 10; i++)
{
customers.Add(new Customer {FirstName = "name" + i, LastName = "last" + i});
}
DataContext = customers;
}
}
//Defines the customer object
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
あなたは、個々のセルを選択するために '選択' を意味しますか?または行? MS Excelとは異なり、WPF DataGridは基本的に個々のセル、行を選択することをサポートしていません。私の答えは行を選択することです。 –