DevExpress 表格再新增行后滚动条自动移动到新增行

DevExpress 表格再新增行后滚动条自动移动到新增行

dxg:GridControl

dxg:TableView

WPF项目

Visual Studio

1. 前端代码

前端有两种方法,一种是GridControl的CurrentItem属性,一种是TableView的FocusedRow属性,二选一即可

示例:

xml 复制代码
<dxg:GridControl CurrentItem="{Binding CurrentLogInfo,Mode=TwoWay}">
                <dxg:GridControl.View>
                    <dxg:TableView AllowEditing="False" FocusedRow="{Binding CurrentLogInfo,Mode=TwoWay}"/>
                </dxg:GridControl.View>
                <dxg:GridControl.Columns>
                </dxg:GridControl.Columns>
            </dxg:GridControl>

2. 后端代码

继承INotifyPropertyChanged并实现RaisePropertyChanged

csharp 复制代码
public class LogViewModel : INotifyPropertyChanged
    {
        public ObservableCollection<LogInfo> logList { get; set; }
        private object _syncLock = new Object();
        public ICollectionView CollectionView { get; set; }

        public LogInfo CurrentLogInfo
        {
            get
            {
                return _currentLogInfo;
            }

            set
            {
                _currentLogInfo = value;
                RaisePropertyChanged("CurrentLogInfo");
            }
        }
        LogInfo _currentLogInfo;
        public event PropertyChangedEventHandler PropertyChanged;
        private void RaisePropertyChanged(String propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        public LogViewModel()
        {
            logList = new ObservableCollection<LogInfo>();

            CollectionView = CollectionViewSource.GetDefaultView(logList);
            BindingOperations.EnableCollectionSynchronization(logList, _syncLock);
        }
    }

这样我们在改变CurrentLogInfo时,就会通知客户端属性值已更改。

csharp 复制代码
logvm.logList.Add(log);
logvm.CurrentLogInfo = log;
相关推荐
古力德1 小时前
Unity中造轮子:定时器
c#·unity3d
小码编匠2 小时前
C# 实现西门子S7系列 PLC 数据管理工具
后端·c#·.net
“抚琴”的人21 小时前
【机械视觉】C#+VisionPro联合编程———【六、visionPro连接工业相机设备】
c#·工业相机·visionpro·机械视觉
FAREWELL000751 天前
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
学习·c#·面向对象·运算符重载·oop·拓展方法
CodeCraft Studio1 天前
Excel处理控件Spire.XLS系列教程:C# 合并、或取消合并 Excel 单元格
前端·c#·excel
勘察加熊人1 天前
forms实现连连看
c#
hvinsion1 天前
PPT助手:一款集计时、远程控制与多屏切换于一身的PPT辅助工具
c#·powerpoint·ppt·ppt助手·ppt翻页
weixin_307779131 天前
使用C#实现从Hive的CREATE TABLE语句中提取分区字段名和数据类型
开发语言·数据仓库·hive·c#
时光追逐者1 天前
在 Blazor 中使用 Chart.js 快速创建数据可视化图表
开发语言·javascript·信息可视化·c#·.net·blazor
huizhixue-IT1 天前
华为存储考试内容&HCIP-Storage
wpf