找回密码
 立即注册

QQ登录

只需一步,快速开始

FBAccount

中级会员

21

主题

73

帖子

701

积分

中级会员

积分
701

活字格认证

FBAccount
中级会员   /  发表于:2014-12-3 11:44  /   查看:11125  /  回复:13
版主好~~
首先请教当我一页多笔数据时,并且使用大量自定义控件,如C1Number混合多Buttons,在使用键盘PageDown或PageUp时效率很差
例子的话,以之前版主写的Demo [UnboundCellFactory.4],放大到全画面,使用PageDown或是PageUp,整个效率就很卡~

且请教我采用C1 WPF 给的Sample,其中C1Flexgrid ItemsSource 放入ListCollectionView
举例
public class QCollectionView : ListCollectionView
{
   public QCollectionView(System.Collections.IList list) : base(list) {  }
   new public NotifyCollectionChangedEventHandler CollectionChanged;
   protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   {
       base.OnCollectionChanged(e);
       if (CollectionChanged != null)  CollectionChanged(this, e);
   }
}

QCollectionView  view = new QCollectionView(放入Class);
_flex.ItemsSource = view;

当我新增一笔数据时,必须 view.Refresh() ,在画面上才能呈现新增的那一笔资料
请问有其他方式吗?? Refresh会刷新整个画面~ 不会太消耗效能吗??

p.s. 我的分辨率是 1920 x 1080

13 个回复

正序浏览
Alice
社区贡献组   /  发表于:2014-12-5 10:29:00
14#
回复 13楼FBAccount的帖子

好的,也谢谢你的反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2014-12-5 10:19:00
13#
回复 11楼FBAccount的帖子

当我们添加到新的item到数据源的时候,绑定的C1FlexGrid会自动的更新,所以我不太理解你说的需要手动刷新的
Alice 发表于 2014-12-4 18:15:00


主要是仿照官方Flexgrid Sample改过来的

OrderTemporaryDataList _OrderTemporaryData = new OrderTemporaryDataList();
QCollectionView view = new QCollectionView(_OrderTemporaryData);
_Flex.ItemsSource = view;


OrderTemporaryData pData = new OrderTemporaryData();
将数据放入pData

_OrderTemporaryData.AddRow(pData);

必须再执行view.Refresh 后方能更新_Flex上的UI

若改采每新增时将ItemsSource给null再给view则会快非常多

_Flex.ItemsSource = null;
_Flex.ItemsSource = view;

此项算是解决了…….当然有更快的方式的话,烦请提供

评分

参与人数 1金币 +100 收起 理由
Alice + 100 有关问题反馈,奖励100金币

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-4 18:15:00
12#
回复 11楼FBAccount的帖子

当我们添加到新的item到数据源的时候,绑定的C1FlexGrid会自动的更新,所以我不太理解你说的需要手动刷新的问题。
或许需要一些代码或是例子,以便我更好的帮助你解决问题。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2014-12-4 17:25:00
11#
回复 9楼FBAccount的帖子

对你提到了两个问题进行了测试,是我测试程序本身的bug,和提升性能的代码无关。
CheckBox不能选择的bug,
Alice 发表于 2014-12-4 16:26:00


感谢,我目前程序里面算是运作良好,只想尽力提升效率,避免WPF平台限制的功耗,目前仍无法达到像是Winform那样顺畅~ 但有提升是好事~
若有其他可以提升效能的方式,烦请再提供给我,感谢

目前对于第二个问题,绑定的数据下,新增删除必须用refresh方式方能呈现,
若是一笔大容量导入,则汇入后做一次refresh就OK了,效能是可以接受的,也够快~~

但若是一笔笔手动新增,每新增一笔就要Refresh,当资料越来越多时就会发现新增的效率变差(例如说用户狂点某按键新增)
所以才想说有没有其他方式也可以呈现那笔被新增的数据。谢谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-4 16:26:00
10#
回复 9楼FBAccount的帖子

对你提到了两个问题进行了测试,是我测试程序本身的bug,和提升性能的代码无关。
CheckBox不能选择的bug,我已经修复,将原来的代码:
  1. var checkCell = GetCheckCell(val is bool ? (bool)val : false);
复制代码

改成:
  1. var checkCell = GetCheckCell(val is int ? (int)val > 0 : false);
复制代码

就可以正常选择。

第二个问题Raido选择后滚动,该位置不正确。是由于测试程序里自定义的TestType这个类型没有StoreValue。
很抱歉给你带来了困扰,由于当时写的是测试程序,里面或多或少会存在一个bug。
如果你在应用到自己的程序里的时候,发现问题,我们再有针对的进行解决。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2014-12-4 15:20:00
9#
回复 7楼FBAccount的帖子

只能RadioButton才会出现这类问题么?移动拖拽是指拖动scrollbar?
我用这个Demo看下哪里有问题
Alice 发表于 2014-12-4 13:59:00


目前是Radio Button才有出现这类状况,其余是有些前面的CheckBox不能勾选~

不过这样不影响,整体来说效率有提升,虽然同样大画面还是有点卡
但卷轴比较好拖了,PageDown or PageUp 在大画面下运行到某一阶段稍卡

单箭头上下则较无问题,整体跟之前比效率确实有所提升

上下拉来拉去时(键盘或Scroll bar)内存方面吃的比较多;若删除其中某一笔数据,Stack中的Control有办法进行释放吗??

真的很感谢,有提升了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-4 13:59:00
8#
回复 7楼FBAccount的帖子

只能RadioButton才会出现这类问题么?移动拖拽是指拖动scrollbar?
我用这个Demo看下哪里有问题,今天下班前给您一个此问题反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
FBAccount
中级会员   /  发表于:2014-12-4 11:41:00
7#
回复 3楼FBAccount的帖子

1.对于PageUp/PageDown的性能问题,我将这个问题优先级提高,帮你做了进一步提高性能的验证。
对于性能
Alice 发表于 2014-12-3 16:31:00


版主妳好,真的非常感谢您的解答~
目前使用妳的DEMO,有个疑问是TestType选择RadioButton后移动拖曳等,其RadioButton 有时不会在同一个位置上面

看流程,画面起始会先new Class,之后Dispose存入Stack;但在画面上操作如RadioButton点选时,因为Stack Pop出来后 还未Dispose,因此会再new Class~

但这样跟数据UI不再同一个位置上面有关系吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-3 19:03:00
6#
回复 5楼FBAccount的帖子

附件里是解决方案的Demo,是根据上次发给你的Demo修改的。
你先研究下,如果有什么问题,请提出来我们再进行讨论。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部