如何在WPF中编辑Datagrid中的选定行 [英] How to edit selected row in Datagrid in WPF

查看:103
本文介绍了如何在WPF中编辑Datagrid中的选定行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个按钮列编辑对应于datagrid中的每一行点击该按钮我想得到相应的行编辑值我们怎么能这样做



xaml代码是: -



i have a button column edit corresponding to each row in datagrid on click of that button i want to get corresponding row edit value how can we do that

xaml code is :-

<Window x:Class="Wpf_grid.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="326" Width="946">
<Grid>
    <DataGrid Name="MyDataGrid" Uid="MyDataGrid" AutoGenerateColumns="False" AlternationCount="2" SelectionMode="Single" Margin="0,31,0,0" >
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=RegId}" IsReadOnly="True" Header="Registration Id" Width="sizeToHeader"/>
            <DataGridTextColumn Binding="{Binding Path=Name}" Header="Name" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=FName}" Header="Father Name" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=ContactNumber}" Header="Contact Number" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=email}" Header="email" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=password}" Header="password" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=paddress}" Header="paddress" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=pcity}" Header="pcity" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=pstate}" Header="pstate" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=ppinCode}" Header="ppinCode" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=caddress}" Header="caddress" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=ccity}" Header="ccity" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=cstate}" Header="cstate" Width="sizeToHeader" />
            <DataGridTextColumn Binding="{Binding Path=cpinCode}" Header="cpinCode" Width="sizeToHeader" />
            <DataGridTemplateColumn Header="Edit Row">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="Edit" Click="btnEdit_Click"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="Delete Row">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="Delete" Click="btnDelete_Click"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

    <Button Content="LoadCustomer" Name="LoadCustomer" Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="0,5,0,0" Click="LoadCustomer_Click" />

</Grid>







和.cs代码是: -




and .cs code is:-

private void btnEdit_Click(object sender, RoutedEventArgs e)
   {
       try
       {
           gridDataContext datacontext = new gridDataContext();
           registration registrationRow = MyDataGrid.SelectedValue as registration;
           int m = registrationRow.RegId;
           //registration Registration = (from p in datacontext.registrations where p.RegId == registrationRow.RegId select p).Single();
           registration Registration = datacontext.registrations.Where(A => A.RegId == m).Single();
           Registration.Name = registrationRow.Name;
           Registration.FName = registrationRow.FName;
           datacontext.SubmitChanges();
           MessageBox.Show("Row Updated Successfully");
           LoadCustomerDetail();
       }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message);
           return;
       }
   }





有人告诉我如何点击按钮点击?



anyone tell me how can i edit on button click ??

推荐答案

最后我得到了解决方案......我们可以创建一个存储行数据的对象。现在我可以访问每个单元格项目



这里是代码: -

finally I got solution... we can create an object which is store row data. now i can access each cell item like that

here is code:-
private void btnEdit_Click(object sender, RoutedEventArgs e)
    {
        try
        {
        object item = MyDataGrid.SelectedItem;
            gridDataContext datacontext = new gridDataContext();

            int m = int.Parse((MyDataGrid.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text);

            registration Registration = datacontext.registrations.Where(A => A.RegId == m).Single();
            Registration.Name = (MyDataGrid.SelectedCells[1].Column.GetCellContent(item) as TextBlock).Text;
            Registration.FName = (MyDataGrid.SelectedCells[2].Column.GetCellContent(item) as TextBlock).Text;
            datacontext.SubmitChanges();
            MessageBox.Show("Row Updated Successfully");
            LoadCustomerDetail();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            return;
        }
    }


你好

WPF的新手iam在数据网格上挣扎

在sqlserver中使用Wpf技术编辑,更新,删除,取消Datagrid表中的按钮
Hello
Am new to WPF iam struggling with datagrid
Edit,UPdate,Delete,Cancel buttons inside Datagrid table by using Wpf technology in sqlserver


这篇关于如何在WPF中编辑Datagrid中的选定行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆