0

我正在使用 wpf 和 devexpress 工具,我制作了一个小应用程序,在其中我做了 ADO.net Connectivity 并显示了数据库中 Name 表中的所有名称。我的问题是:在代码中有一个删除按钮功能,它描述了删除焦点行,现在当我单击该按钮焦点行被删除但没有对数据库中的表进行任何更改时,我应该在删除按钮功能中写什么也从数据库中删除该重点行。谁能回答我这个问题。谢谢,安妮

  public partial class MainWindow : Window
    {
    public MainWindow()
        {
        InitializeComponent();

        }

    private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {
        nEntities nr = new nEntities();
        nr.Names.ToList();
        this.grid.ItemsSource = nr.Names.Local;


        }
    private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
        if (grid.IsValidRowHandle(view.FocusedRowHandle))
            view.DeleteRow(view.FocusedRowHandle);

        }
 <Grid x:Name="LayoutRoot" Background="White">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="30" />
    </Grid.RowDefinitions>
    <dxg:GridControl Grid.Row="0" Name="grid" AutoGenerateColumns="AddNew">
        <dxg:GridControl.View>
            <dxg:TableView x:Name="view" NavigationStyle="Cell"
                           NewItemRowPosition="Top" />
        </dxg:GridControl.View>
    </dxg:GridControl>
<Grid Margin="3" Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Button Content="Add Empty Row" />
        <Button Content="Delete Focused Row"
                Click="DeleteButton_Click"
                Grid.Column="1" />
    </Grid>
4

2 回答 2

0

您是否使用绑定来显示网格中的记录?删除需要在实体而不是实际网格上进行。

于 2013-08-01T10:50:18.657 回答
0

您可以使用:当您Delete Button从键盘按下时,它将删除。

private void LayoutRoot_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Delete)
            {
                MessageBoxResult result = MessageBox.Show("Do you want to delete this record ?", "Delete Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (result == MessageBoxResult.Yes)
                {
                    view.DeleteRow(view.FocusedRowHandle);
                    e.Handled = true;
                 }

在 CellValueChanging 事件中:

private void view_CellValueChanging(object sender, CellValueChangedEventArgs e)
        {
            int selectedRowhandle = ((GridViewBase)LayoutRoot.View).GetSelectedRowHandles()[0];
            Employee rowid = ((Employee)LayoutRoot.GetRow(selectedRowhandle));
            //get id and confirmation and then delete
             //Delete(rowid.EmployeeID);
        }
于 2013-08-01T10:51:14.623 回答