silverlight
发布时间:2022-05-04 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[Silverlight]在DataGrid中显示行号,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
概述
我们通常会碰到在DataGird的第一列(或某一列)自动显示该行行号的需求,如下图 分析这个问题我们需要两步走
向数据源添加数据时自动显示行号 从数据源删除数据时自动更新所有行号 首先做一些准备工作,我们需要为DataGird自定义第一列的单元格 <data:DataGridTemplate
column> <data:DataGridTemplate
column.CellTe
我们通常会碰到在DataGird的第一列(或某一列)
自动显示该行行号的需求,如下图
分析这个问题我们需要两步走
首先做一些准备工作,我们需要为DataGird
自定义第一列的单元格
<data:DataGridTemplate
column>
<data:DataGridTemplate
column.CellTemplate>
<DataTemplate>
<TextBlock />
</DataTemplate>
</data:DataGridTemplate
column.CellTemplate>
</data:DataGridTemplate
column>
public class Person
{
public
String FullName
{ get; set; }
public int? Age
{ get; set; }
public
String
gender
{ get; set; }
}
接着定义
一个私有变量_personList并在初始化时
为其添加几项以
便测试。
注:_personList是ObservableCollection,以下我们所有的操作都基于ObservableCollection。
ObservableCollection<Person> _personList;
_personList = new ObservableCollection<Person>
{
new Person()
{ FullName="forever",Age=13,
gender="男" },
new Person()
{ FullName="fish",Age=14,
gender="公"},
new Person()
{ FullName="SBPP",Age=40,
gender="男"},
new Person()
{FullName="TNT",Age=null,
new Person()
{FullName="SARS",Age=5,
gender="无"},
};
private void btnAdd_Click(ob
ject sender, RoutedEventArgs
E) {
_personList.Add(new Person()
{ FullName = "Lulu", Age = 18,
gender = "女" }
);
}
为了让每一行的第一列产生
自动编号,我们需要捕获dataGrid1的LoadingRow事件,如
dataGrid1.LoadingRow += new EventHandler<DataGridRowEventArgs>(dataGrid1_LoadingRow
);
void dataGrid1_LoadingRow(ob
ject sender, DataGridRowEventArgs
E) {
int index = e.Row.Ge
Tindex(
);
var cell = dataGrid1.
columns
[0].GetCellContent(e.Row) as TextBlock;
cel
l.Text = (index + 1).To
String(
);
}
F5运行后点击
增加按钮,你会发现数据源中新增的数据已经加入到DataGrid的新行中,并且第一列
自动显示了该行的行号。
<data:DataGridTemplate
column>
<data:DataGridTemplate
column.CellTemplate>
<DataTemplate>
<Button Content="
删除" Click="btnDel_Click" />
</DataTemplate>
</data:DataGridTemplate
column.CellTemplate>
</data:DataGridTemplate
column>
然后在.cs中处理btnDel_Click事件
private void btnDel_Click(ob
ject sender, RoutedEventArgs
E) {
var btn = sender as Button;
var index = _personList.IndexOf(btn.DataCo
ntext as Person
);
_personList.RemoveAt(inde
X);
foreach (var item in dataGrid1.Items
sourcE) {
var txtBlock = dataGrid1.
columns
[0].GetCellContent(item) as TextBlock;
txtBlock.Text = (DataGridRow.GetRowContainingElement(txtBlock).Ge
Tindex() + 1).To
String(
);
}
}
ok,大功告成。
大佬总结
以上是大佬教程为你收集整理的[Silverlight]在DataGrid中显示行号全部内容,希望文章能够帮你解决[Silverlight]在DataGrid中显示行号所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。