【发布时间】:2012-02-11 03:31:30
【问题描述】:
我的 wpf 项目中有一个 DataGrid,它绑定到一个数据源并成功填充了值。现在的问题是,当用户删除一行时我如何响应。我也想删除数据库中的同一行。我的方法是从当前选定行的 lbId 列中获取 id,并在用户按下键盘上的 Delete 按钮或我的 GUI 中的 Delete Button 时发出 DELETE 查询。我该怎么做?
或者在 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>
这是 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();
}
任何帮助将不胜感激。
【问题讨论】:
标签: c# .net wpf database datagrid