
概述为了让每一行的第一列产生自动
编号,我们需要捕获dataGrid1的LoadingRow事件,如 dataGrid1.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid1_LoadingRow); void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e) 为了让每一行的第一列产生自动编号,我们需要捕获dataGrID1的LoadingRow事件,如 dataGrID1.LoadingRow += new EventHandler<DataGrIDRowEventArgs>(dataGrID1_LoadingRow); voID dataGrID1_LoadingRow(object sender,DataGrIDRowEventArgs e) { int index = e.Row.GetIndex(); var cell = dataGrID1.Columns[0].GetCellContent(e.Row) as TextBlock; cell.Text = (index + 1).ToString(); } F5运行后点击增加按钮,你会发现数据源中新增的数据已经加入到DataGrID的新行中,并且第一列自动显示了该行的行号。 现在我们开始解决第二个问题,即从数据源删除数据时自动更新所有行号 现在GrIDVIEw中再自定义一列,每列的显示一个按钮用来删除该条数据 <data:DataGrIDTemplateColumn> <data:DataGrIDTemplateColumn.CellTemplate> <DataTemplate> <button Content="删除" Click="btnDel_Click" /> </DataTemplate> </data:DataGrIDTemplateColumn.CellTemplate> </data:DataGrIDTemplateColumn> 然后在.cs中处理btnDel_Click事件 private voID btnDel_Click(object sender,RoutedEventArgs e) { var btn = sender as button; var index = _personList.IndexOf(btn.DataContext as Person); _personList.RemoveAt(index); foreach (var item in dataGrID1.ItemsSource) { var txtBlock = dataGrID1.Columns[0].GetCellContent(item) as TextBlock; txtBlock.Text = (DataGrIDRow.GetRowContainingElement(txtBlock).GetIndex() + 1).ToString(); } } 总结
以上是内存溢出为你收集整理的Silverlight dataGrid产生自动编号全部内容,希望文章能够帮你解决Silverlight dataGrid产生自动编号所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)