wpf中datagrid控件选定一行,写了一个删除按钮,点击按钮应该怎样删除这行? 50
应该是寻找这样的特殊标识,也就是主键吧,然后用SQL在数据库中删除,然后再重新绑定下数据库吧,但是不知道应该怎样去找主键或者其他什么的,WPF和FORM中的这个控件好像有...
应该是寻找这样的特殊标识,也就是主键吧,然后用SQL在数据库中删除,然后再重新绑定下数据库吧,但是不知道应该怎样去找主键或者其他什么的,WPF和FORM中的这个控件好像有些不同,特请教各位达人。。。。
我是新手请详细一些吧,谢谢。 展开
我是新手请详细一些吧,谢谢。 展开
2011-03-09
展开全部
WPF中你可以这样:定义一个DataTable,然后通过SQL从数据库中获取相关数据填充这个DataTable,并将其作为datagrid的数据源,具体可这样操作:
datagrid.ItemsSource = null;
datagrid.Items.Clear();
datagrid.ItemsSource = DataTable.DefaultView;
datagrid.SelectedValuePath = "主键字段名";
当选中datagrid中一项时,可以根据datagrid.SelectedValue(实际的值)去删除数据库相关的记录,然后再重新刷新datagrid的数据源。
不知道这样说,明白么?当然你也可以在页面通过xaml进行双向绑定操作集合来实现。
datagrid.ItemsSource = null;
datagrid.Items.Clear();
datagrid.ItemsSource = DataTable.DefaultView;
datagrid.SelectedValuePath = "主键字段名";
当选中datagrid中一项时,可以根据datagrid.SelectedValue(实际的值)去删除数据库相关的记录,然后再重新刷新datagrid的数据源。
不知道这样说,明白么?当然你也可以在页面通过xaml进行双向绑定操作集合来实现。
追问
这个datagrid.SelectedValue中的内容应该怎样调用呢?
展开全部
很简单啊,你不是添加了一个按钮吗?在按钮的Tag绑定一个属性,就是你这个集合里面类的主键比如说是ID,然后再按钮上加一个事件
代码写:
button aBtn=asender as Button;
string ID=aBtn.Tag.ToString();
这样的话,你要删除这行的ID都知道了,就不用告诉你怎么去删除了吧!
代码写:
button aBtn=asender as Button;
string ID=aBtn.Tag.ToString();
这样的话,你要删除这行的ID都知道了,就不用告诉你怎么去删除了吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你的DataGrid.SelectedValuePath设置Binding 到数据集的主键,这样主键就会跟随你的选中项,删除的时候只需要拿DataGrid.SelectedValue的值就是主键值了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
d.Row="6" Name="dg" AutoGenerateColumns="False" Hyperlink.Click="DataGridHyperlinkColumn_Click">
<DataGrid.Columns>
<DataGridHyperlinkColumn Header="点击链接" Binding="" ></DataGridHyperlinkColumn>
</DataGrid.Columns>
</DataGrid>
private void DataGridHyperlinkColumn_Click(object sender, RoutedEventArgs e)
{
var dg = sender as DataGrid;
var row = dg.SelectedItem as Pages;
if(row !=null)
row.WindowEnty.Show();
}
pages辅助类:
public class Pages
{
public Window WindowEnty
public int Title
}
定义datagrid的source:
var demo = new WDemo();
var list2 = new List<Pages> };
dg.ItemsSource = list2;
<DataGrid.Columns>
<DataGridHyperlinkColumn Header="点击链接" Binding="" ></DataGridHyperlinkColumn>
</DataGrid.Columns>
</DataGrid>
private void DataGridHyperlinkColumn_Click(object sender, RoutedEventArgs e)
{
var dg = sender as DataGrid;
var row = dg.SelectedItem as Pages;
if(row !=null)
row.WindowEnty.Show();
}
pages辅助类:
public class Pages
{
public Window WindowEnty
public int Title
}
定义datagrid的source:
var demo = new WDemo();
var list2 = new List<Pages> };
dg.ItemsSource = list2;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询