前提・実現したいこと
C#、WPF、Prism.Wpfを使用しています。
<質問概要>
DataGridのItemsSourceにインスタンス群をバインディングした場合において
特定の行に割り当てられた1つのインスタンスを取得する方法を教えてください。
<質問詳細>
下記ソースコードのViewの削除ボタンのCommandParameterに(「????」と記載している箇所)、
Personインスタンスをバインディングしたいのですが、それは可能でしょうか。
該当のソースコード
View(一部抜粋)(UserControl)
C#
1<DataGrid ItemsSource="{Binding People}" AutoGenerateColumns="False" > 2 <DataGrid.Columns> 3 <DataGridTextColumn Header="ID" Binding="{Binding Id}" /> 4 <DataGridTextColumn Header="名前" Binding="{Binding Name}" /> 5 <DataGridTextColumn Header="性別" Binding="{Binding Sex}" /> 6 <DataGridTemplateColumn Header="編集"> 7 <DataGridTemplateColumn.CellTemplate> 8 <DataTemplate> 9 <Button Content="削除" 10 CommandParameter="{Binding ????}" 11 Command="{Binding Path=DataContext.DeleteButton, 12 RelativeSource={RelativeSource FindAncestor, 13 AncestorType={x:Type UserControl}}}"/> 14 </DataTemplate> 15 </DataGridTemplateColumn.CellTemplate> 16 </DataGridTemplateColumn> 17 </DataGrid.Columns> 18</DataGrid>
ViweModel(一部抜粋)
C#
1 private ObservableCollection<Person> _people = new ObservableCollection<Person>(); 2 public ObservableCollection<Person> People 3 { 4 get { return _people; } 5 set { SetProperty(ref _people, value); } 6 } 7 8 public DelegateCommand<Person> DeleteButton { get; } 9 10 private void DeleteButtonExecute(Person person) 11 { 12 //削除処理 13 } 14
Entity(一部抜粋)
C#
1 public sealed class Person 2 { 3 public int Id { get; set; } 4 public string Name { get; set; } 5 public string Sex { get; set; } 6 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/10 12:27