【FlexGrid】MVVM模式中如何显示行号码
求助,不想在xaml.cs中修改,能不能有什么方法在ViewModel中设置行号码,并且使用AllowAddNew="True"的时候,自动追加的新行号是原有的星号呢Richard.Ma 发表于 2021-6-21 16:03
我想了一下,其实你需要的RowNumber就是相当于一个自增的数据列,
但是一旦这个和ViewModel绑定,那么在 ...
谢谢回复
我的第一个问题,还是需要用CellFactory,我理解了。
那么第二个问题,关于星号我是用以下方法实现的。我想问一下,这个星号必须自己设定吗?我记得不改写行号之前,新行本身就是显示星号的。除了我以下的方法,还有别的方法吗?
public class MyCellFactory : CellFactory
{
public override void CreateRowHeaderContent(C1FlexGrid grid, Border bdr, CellRange rng)
{
if (rng.Column == 0)
{
var tb = new TextBlock();
if (grid.Rows.Count - 1 > rng.Row)
{
tb.Text = string.Format("{0}", rng.Row + 1);
}
else
{
tb.Text = "*";
}
tb.HorizontalAlignment = HorizontalAlignment.Center;
tb.VerticalAlignment = VerticalAlignment.Center;
bdr.Child = tb;
}
}
} 我看你标题写的就只是要显示行序号,内容中说的“自动追加的新行号是原有的星号”是什么意思呢?
谢谢回复!是这样的,我是再用MVVM模式写一个wpf的表。
其中有2个要求。
1.这个表需要显示行号,但是行号的实现不想在xaml.cs里用【CellFactory】来实现,有没有在ViewModels里动态绑定的方法呢?
2.这个表还要始终显示一个新的行,用到了AllowAddNew="True",这样行列号就会显示星号。但是担心要求1的显示的行号会与2的星号起冲突,有没有解决的方法呢? 收到,下午帮你验证然后给你回复 Richard.Ma 发表于 2021-6-21 12:30
收到,下午帮你验证然后给你回复
谢谢,麻烦你了 我想了一下,其实你需要的RowNumber就是相当于一个自增的数据列,
但是一旦这个和ViewModel绑定,那么在对表格进行排序或者筛选等操作后,实际上就无法起到行号的作用了,所以还是只能通过CellFactory来实现 目前自定义内容就是通过CellFactory,没有其他更好的办法了
页:
[1]