データソースにバインドされたwpfプロジェクトにDataGridがあり、正常に値が入力されています。今問題は、ユーザーが行を削除しているときにどのように反応するかです。私もデータベース内の同じ行を削除したい。私のアプローチは、現在選択されている行のlbId
列からIDを取得し、ユーザーがキーボードのDeleteボタンまたはGUIのDelete Button
を押したときにDELETEクエリを発行することです。どうすればいい?DataGrid行としてデータベース行を削除する方法はwpfで削除されますか?
Winforms DataGridView
のようにUserDeletingRow
のようなものはありませんか?ここ
ここXAML
<DataGrid AutoGenerateColumns="False" Height="430" HorizontalAlignment="Left" Margin="378,61,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="550" ItemsSource="{Binding Path=LocalBookmarks}" CanUserReorderColumns="False" CanUserSortColumns="False" Grid.Row="5" RowEditEnding="datagrid1_RowEditEnding" DataGridRow.Selected="datagrid1_RowSelected">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Width="20" Binding="{Binding Path=lbId}" CanUserResize="False"></DataGridTextColumn>
<DataGridTextColumn Header="Title" Width="225" Binding="{Binding Path=TitleOfPage}" MaxWidth="250" CanUserResize="True"></DataGridTextColumn>
<DataGridHyperlinkColumn CanUserResize="True" Header="Link" MaxWidth="300" MinWidth="250" Binding="{Binding Path=SiteAddress}"/>
<DataGridTextColumn Header="Saved On" Width="70" Binding="{Binding Path=DateAdded}" CanUserResize="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
あるデータグリッドの画像です。ここで
バインディングコードです:
private void BindToData(SqlCeConnectionManger s, int gt, int lt)
{
SqlCeDataAdapter sda = new SqlCeDataAdapter("SELECT * FROM LocalBookmarks WHERE lbId > " + gt.ToString() + " AND lbId < " + lt.ToString() + " ORDER BY DateAdded DESC", s.SqlCeCon);
DataSet dataset = new DataSet();
sda.Fill(dataset, "LocalBookmarks");
dataGrid1.DataContext = dataset;
s.SqlCeCon.Close();
}
任意の助けが理解されるであろう。