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;
相关推荐
CoderIsArt26 分钟前
WPF的UI元素类型详解
ui·wpf
zybsjn1 小时前
后端系统做国际化改造,生成多语言包
java·python·c#
敲代码的 蜡笔小新1 小时前
【行为型之迭代器模式】游戏开发实战——Unity高效集合遍历与场景管理的架构精髓
unity·设计模式·c#·迭代器模式
yc_12242 小时前
SqlHelper 实现类,支持多数据库,提供异步操作、自动重试、事务、存储过程、分页、缓存等功能。
数据库·c#
zxfgdjfjfjflfllf2 小时前
Mapreduce初使用
大数据·wpf·mapreduce
Kookoos3 小时前
Redis + ABP vNext 构建分布式高可用缓存架构
redis·分布式·缓存·架构·c#·.net
Zhen (Evan) Wang5 小时前
ABP-Book Store Application中文讲解 - Part 2: The Book List Page
c#
小乖兽技术6 小时前
在 .NET 8 开发的WinForms 程序中展示程序版本号的几种方式
开发语言·c#·.net
TheWindofFate6 小时前
C# 基础 try-catch代码块
c#·try-catch
TIF星空10 小时前
【使用 C# 获取 USB 设备信息及进行通信】
开发语言·经验分享·笔记·学习·microsoft·c#