首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在WPF Datagrid上按Enter键时DataGridCellsPanel.BringIndexIntoView中的ArgumentOutOfRangeException?

在WPF中,DataGrid是一种用于显示和编辑数据的强大控件。当在DataGrid中按下Enter键时,会触发DataGrid的默认行为,即将焦点移动到下一行的相同列上。这个默认行为是由DataGridCellsPanel.BringIndexIntoView方法实现的。

然而,有时在按下Enter键时可能会遇到ArgumentOutOfRangeException异常,这是因为在调用DataGridCellsPanel.BringIndexIntoView方法时传递了一个超出范围的索引参数。

要解决这个问题,可以尝试以下几种方法:

  1. 确保索引参数的有效性:在调用DataGridCellsPanel.BringIndexIntoView方法之前,确保传递的索引参数在有效范围内。可以通过检查索引是否大于等于0且小于DataGrid中的行数来实现。
  2. 检查DataGrid的数据源:如果DataGrid的数据源发生变化,可能会导致索引参数无效。在调用DataGridCellsPanel.BringIndexIntoView方法之前,可以检查数据源是否已更新,并相应地更新索引参数。
  3. 使用其他方法替代DataGridCellsPanel.BringIndexIntoView:如果以上方法无效,可以尝试使用其他方法来实现按下Enter键时的行为。例如,可以使用DataGrid.ScrollIntoView方法将指定的行滚动到可见区域。

总结起来,解决在WPF Datagrid上按Enter键时出现ArgumentOutOfRangeException异常的方法包括确保索引参数的有效性、检查数据源的更新情况以及尝试使用其他方法替代DataGridCellsPanel.BringIndexIntoView。具体的实现方式可以根据具体情况进行调整。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各种业务需求。产品介绍链接
  • 腾讯云云数据库 MySQL 版:可靠、可扩展的关系型数据库服务。产品介绍链接
  • 腾讯云人工智能:提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。产品介绍链接
  • 腾讯云物联网套件:提供全面的物联网解决方案,包括设备管理、数据采集、数据分析等。产品介绍链接
  • 腾讯云移动开发套件:提供移动应用开发所需的云服务,包括移动推送、移动分析、移动测试等。产品介绍链接
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务。产品介绍链接
  • 腾讯云区块链服务(BCS):提供一站式区块链解决方案,支持快速搭建和部署区块链网络。产品介绍链接
  • 腾讯云虚拟专用网络(VPC):提供安全可靠的云上网络环境,支持自定义网络拓扑和访问控制。产品介绍链接
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 7 WPF 破坏性改动 下 F3 让 DataGrid 自动排序

本文记录在 dotnet 7 下 WPF 一个破坏性改动。 dotnet 7 下 WPF 支持 DataGrid 在按下 F3 时候,自动按照当前所选列进行列自动排序。...: https://github.com/dotnet/wpf/pull/6873 行为就是 DataGrid 获取选中和键盘焦点下 F3 ,将会根据当前选中列作为排序依据,进行排序。.../Window> 尝试切换到 dotnet 7 框架,然后运行项目,接着随意选中一项,下 F3 ,可以看到 DataGrid 被自动排序 尝试切换到 dotnet 6 框架,执行以上步骤,可以看到下...F3 ,啥都没有发生 这就是 dotnet 7 WPF 引入一个破坏性变更 如果不想要此功能,可以自己通过路由事件吃掉 F3 ,从而不让 DataGrid 排序 protected...dotnet/wpf 我认为 WPF 这么大体量下,功能性改动,还是需要谨慎一些,毕竟众口难调。

71920

C# WPF数据绑定方法以及重写数据模板后数据绑定

写在前面 本文将会介绍WPF如何实现前后端数据绑定和在进行数据绑定时常用方法和类以及对于DataGrid、ListView这样控件重写数据模板后控件如何进行数据绑定。...set; } 25 26 /// 27 /// 绑定前台DataGrid控件SelectedItem字段,用于保存当前选中Item所对应数据源...点击左下角“添加学生小刚”按钮,弹出是否确认添加小刚信息确认框,点击是则会添加小刚信息。 电话信息输入回车会显示点击了回车弹框,并且显示控件内容。...这时我们需要用到Command(命令),本实例展示了将按钮点击事件和键盘回车事件通过命令方式传到后台,但命令用法远不止这两种,可以实际开发过程中跟据不同需求进行学习和尝试。...3.数据模板重写:本实例重写了DataGrid控件电话一列和删除一列数据模板,我们可以看到电话一列重写为了TextBox删除一列重写为了Button,表头也可以进行数据模板重写。

42740

WPF 属性变动后业务处理及恢复原始值方法

WPF 属性变动后业务处理及恢复原始值方法独立观察员 2023 年 2 月 26 日一、前言本文主要介绍 WPF ,当属性变动后,如何依据是哪个属性变动了,以及其变动情况来进行相应业务处理推荐方式...”(《Windows 小工具之 Wifi 固定器》)已经用过了,当时用了两种方法:3.1、方式一绑定基类中直接订阅 PropertyChanged 事件,不过处理方法是一个空虚方法,方便在子类重写...比如,只在编辑状态附加事件处理方法,转为浏览状态,取消该处理方法:[图 3-2-1 情况附加和取消方法(来自:DLGCY_WPFPractice)]3.3、说明其实这种属性变动后业务处理写法...WPF 元素导出为图片方法让 WPF RadioButton 支持再次点击取消选中功能WPF DataGrid 如何将被选中行带到视野WPF 触屏事件后触发鼠标事件问题及 DataGrid...误触问题WPF DataGrid 通过自定义表头模拟首行固定WPF ComboBox 使用 ResourceBinding 动态绑定资源并支持语言切换【翻译】WPF 附加行为介绍 Introduction

3.3K50

WPF 命令自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因

WPF ,你可以使用 Command="{Binding WalterlvCommand}" 方式来让 XAML 一个按钮或其他控件绑定一个命令。...这本是一个非常智能特性,直到你可能发现你按钮可用性状态不正确…… 本文介绍默认情况下,WPF UI 这些命令会在什么时机进行刷新;以及没有及时刷新,可以如何强制让这些命令可用性状态进行刷新...如何手动刷新命令 调用以下代码,即可让 WPF 命令刷新其可用性: 1 CommandManager.InvalidateRequerySuggested(); WPF 命令何时刷新?...默认情况下,WPF 命令只会在以下时机刷新可用性: KeyUp MouseUp GotKeyboardFocus LostKeyboardFocus 使用通俗的话来说,就是: 键盘按键抬起时候...) DataGridCell 只读属性改变时候(参见 DataGridCell.OnNotifyIsReadOnlyChanged) DataGrid 各种各样操作(参见 DataGrid

61130

本地化入门

2.3 设计时支持 VisualStudioXAML设计时支持对开发WPF程序至关重要,对本地化来说,设计时支持主要包含3部分: 在编写XAML可以得到资源智能感知 有完整设计视图 不同语言之间切换...> DataGridColumnHeader做动态切换语言,需要写成DataTemplate方式: ...Demo只有一个名字Labels资源文件,实际项目中可以功能或模块分别建立对应资源文件,解决了资源词典重名、互相覆盖、智能感知列表过长等问题。...3.8 ReSharper支持 对Resx资源文件,ReSharper也提供了良好支持。 当需要为某个资源修改Key,可以“资源文件名称”+"."+"Key"来全局替换,通常这样已经足够放心。...WPF 全球化和本地化概述里有介绍一些本地化最佳做法,如UI应该使用相对布局而非绝对布局、字体选择等,这里不再累赘。

2.4K20

OEA WPF 树型表格整体重构

而花较大精力做这件事原因,主要是因为: 业务需要支持一系列新功能:整行编辑、上下箭头进行导航、合计行、锁定列 等。 控件显示性能较差,需要支持列虚拟化。...而我们表格 API,也应该象 WPF 原生 System.Windows.Controls.DataGrid 控件接口类似。...界面线程会在需要不断地调用 Measure,我们可以把自定义控件很多重要逻辑都可以 MeasureOverride 实现。...元素与元素之间应该是松耦合。     查看 WPF 源码,可以经常看到一些代码,通过可视树关系查找指定类型元素后,再要对元素可空性进行判断。...例如,ListBoxItem 并不一定要放在 ListBox 才能显示。所以,开发自定义控件,尽量不要把控件可视树关系要求得过于严格。当没有指定可视树关系,也不应该抛出异常。

1.8K60

WPF --- 如何以Binding方式隐藏DataGrid

我疑惑了很久,直到看到了Visual Studio实时可视化树: 从图中可以看出,虽然我 Xaml 声明了两列 DataGridTextColumn,但他根本不在可视化树。...「获取 RelativeSource 和指定 ElementName 方式,本质还是可视化树寻找元素」,所以上述方案无法生效。...那为什么 DataGridTextColumn 不在可视化树呢? 可视化树(Visula Tree) 在上面那个问题之前,先看看什么是可视化树? 我们先从微软文档来看一下WPF其他控件继承树。...Visual 是 WPF 可视化对象模型基础,而 Visual 对象通过形成可视化树(Visual Tree)来组织所有可视化模型。...如果大家有更优雅方案,欢迎留言讨论。 ❝参考 stackoverflow - how to hide wpf datagrid columns depending on a propert?

29710

C++CLI 创建WPF项目的方法探索

C++/CLI创建WPF项目的方法 `C++/CLI`下创建WPF项目的方法 C++/CLI下创建WPF项目的方法 Visual C++创建WPF项目的方法 由于WPF不仅仅支持C#/VB开发,还支持其他语言...此时,MyComponent.cpp代码如下: #include "MyComponent.h" 为了正确引用到 WPF 各种库,我们还需要加入 WPF 3 个核心 dll,操作方法是: 右键点击项目中...还有个朋友说需要在项目属性设置"Entry Point"值为"main",测试过了填与不填没影响,建议别填。 ? 接下来,可以build了。...此时F5(或 Ctrl + F5),运行结果如下: ? 美中不足是后面一直有个命令行窗口。...当把 #include windows.h加到#include "MyComponent.h"下一行,发现如下错误: ? 原因在于命令空间冲突,使得Window引用出现起义。

2K10

精通 WPF UI Virtualization

为了解决这个问题,这两天看了许多文章并学习了 WPF UIV 知识,最后终于解决了,待写下此文予以记录。     先来看看实现 UIV 前: ?...其实,解决完后看来,问题主要出在 TreeGrid Template ,直接贴上来给大家看看: <ScrollViewer Style="{StaticResource GridTreeViewScroll...ScollViewer <em>中</em><em>的</em> CanContentScroll 属性为 True <em>时</em>,子对象才能实现 UIV。...原因其实也和 UIV 有关: 目前 <em>WPF</em> <em>中</em><em>的</em>控件<em>在</em> Group 分组后是不支持 UI Virtualization <em>的</em>,原因是当 ScrollViewer.CanContentScroll 设置为...<em>上</em>被我们系统选择来实现 TreeGrid 控件<em>的</em>资源:《A Versatile TreeView for <em>WPF</em>》。

2.3K90

WPF --- 如何重写WPF原生控件样式?

引言 一篇 WPF --- 重写圆角DataGrid样式,因新产品UI需要,重写了一下微软 「WPF」 原生 DataGrid 样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等。...重写过程,遇到了两个问题: 如何获取 「WPF」 原生 DataGrid 样式? 滚动条样式,如何固定滚动条长度? 本篇文章分享一下这两个问题解决办法。...解决方法 我来分别分享一下我遇到这两个问题。 问题1 第一个,如何获取 「WPF」 原生 DataGrid 样式?...关键字选项:可以选择你创建样式是否带 Key,若不带 Key 则默认应用在所有该类型控件。 定义位置选项:“应用程序”选项会将该样式创建到 App.xaml 文件。...问题2 第二个问题, 滚动条样式,如何固定滚动条长度? 原生滚动条样式,纵方向上滚动条高度是跟随你窗口大小和内容多少而改变,窗口大内容少,滚动条高度就越大,反之亦然。

26420

WPF DataGrid 如何将被选中行带到视野

WPF DataGrid 如何将被选中行带到视野 目录 前言 准备工作 方法一 方法二 总结 独立观察员 2021 年 12 月 11 日 前言 WPF 开发,显示表格一般使用 DataGrid...使用还是之前用过 DataGrid Demo 程序(WPF DataGrid 通过自定义表头模拟首行固定》和《WPF 触屏事件后触发鼠标事件问题及 DataGrid 误触问题》中用过),加了一个可以填写要选中行号文本框...方法一 这个方法是参考《【翻译】WPF 附加行为介绍 Introduction to Attached Behaviors in WPF》文章将 TreeViewItem(树状列表项)带到视野方法.../// 参考:http://dlgcy.com/introduction-to-attached-behaviors-in-wpf/ /// 说明:用于 DataGrid 需要设置...先给 DataGrid 命个名(如 x:Name="Dg" )方便后台使用,然后 ViewModel 添加一个选中项改变事件 SelectedItemChanged,并在选中项改变时调用(参数为选中行索引

1.8K10

WPF面试题大全,秒杀面试官必备

12、C#表单界面上,有一个DataGrid控件,如何将SQL数据库里一个表数据显示在这个控件,请描述一下操作方法及步骤 ? 13、解释完整WPF对象层次结构 ?...12、C#表单界面上,有一个DataGrid控件,如何将SQL数据库里一个表数据显示在这个控件,请描述一下操作方法及步骤 ? 答:首先,确保已经建立了与SQL数据库连接。...C#代码,编写查询数据库代码,并将结果绑定到DataGrid控件。可以使用SQLDataAdapter和DataSet来执行查询并获取结果集。...将查询结果填充到DataSet对象,并将DataSet表绑定到DataGridItemsSource属性。...Control 类是所有控件基类,它添加了样式、数据绑定等功能。 18、你用过WPF触发器吗?触发器有哪几种? 答:触发器可以用于满足特定条件自动执行操作。

30610

OEA WPF 树型表格虚拟化设计方案

我们得先看看如何在 WPF 实现虚拟化。...默认为 False ,ScollViewer 自己实现了滚动逻辑, Measure 时会把 Infinite 传给 Content 元素;而当该值被设置为 True,ScrollViwer 认为它...表格虚拟化     由前面的内容可以看出,如果要在 WPF 实现一个行列都支持虚拟化 UIVPanel,只需要从 VirtualizingPanel 继承下一个 UIVPanel 类型,并根据列宽度来计算并生成相应单元格就行了...那么,在这样层次要求下,要如何实现只使用一个滚动条虚拟化呢?还好,WPF 自带 DataGrid 也带有行列虚拟化功能,我们可以先看一下 DataGrid 是如何实现。...未来改进     其实,TreeGrid 作为 OEA 框架界面层核心控件,主要是提供 WPF 树型表格及一般表格功能。一般表格状态下性能保障由虚拟化技术来实现。

2.6K70

【我们一起写框架】MVVMWPF框架(五)—完结篇

我对框架设计理解是这样: 框架设计不应该局限于任何一种设计模式,我们设计框架,应该将设计模式揉碎,再重组;这样设计出来框架才具有一战之力。 框架设计应该根据项目团队成员水平量身定制。...我一篇文章《我们都知道,如何不被淘汰。》谈到,开发人员分为程序员和代码工人两种。 这两种开发人员技术实力差距是巨大;如果框架设计时不考虑团队成员技术实力,那么框架很难发挥出最高战力。...比如,如果开发人员大多是代码工人,那么,设计框架,要尽量将分工明确考虑进来,让每个人只负责自己模块。最简单例子就是,前后端分离。...那么,现在我们一起回头看看已经编写完框架;我们会发现,它是一个将前后台融合,适合程序员团队框架。 DataGrid高级应用 高级应用,我们对表格增加了过滤功能。界面效果如下: ?...代码可以看到,我们为Filter赋值了一个匿名委托;这个委托有一个入参和一个返回值;其中,入参是我们表格DataContext,返回值是Bool类型,表示这行在表格是否显示。

2.1K40

【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解

一、DataGrid控件详解WPFDataGrid是一个非常强大和灵活控件,它可用于展示和编辑数据。...DataGrid还有许多其他属性和方法,可以根据需求进行使用。1.属性介绍WPFDataGrid控件常见属性如下:AutoGenerateColumns:是否自动生成列,默认为true。...2.常用场景WPFDataGrid控件常用场景包括以下几个方面:数据展示:DataGrid控件可以方便地展示数据表格,特别是当数据量比较大,使用DataGrid可以快速地进行数据查看和筛选。...数据分页:DataGrid控件可以支持数据分页显示,当数据量比较大,可以将数据分页展示,方便用户进行快速数据浏览和查找。...StudentDialogViewModel,我们使用了一个私有字段_student来存储传入Student对象,以及一些属性来绑定StudentDialog控件,属性setter通知界面更新

69700

WPF --- 触摸屏下两个问题

引言 本篇文章分享一下之前遇到WPF应用在触摸屏下使用时两个问题。...期间遇到了两个问题: WPF触摸屏下,如果有滚动条(ScrollViewer)情况下,默认包含触底反馈功能,就是触摸屏滑动到底或从底滑到顶,界面都会出现抖动情况。...触摸屏下,当触点处于 DataGrid ,无法滚动界面。... UI 元素绑定它反馈事件,然后注册方法设置 e.Handled = true; ,这样中断了事件继续冒泡或隧道传播,比如这样 // Xaml,在对应 UIElement 绑定ManipulationBoundaryFeedback...,使用滑轮界面无法滚动问题,那么解决触摸屏触点在 DataGrid 无法滚动问题,也是一样思路,根据触点偏移量,模拟鼠标滚轮偏移量,调用鼠标滚动事件,模拟滚动,代码如下: private

10410

WPF 触屏事件后触发鼠标事件问题及 DataGrid 误触问题

WPF 触屏事件后触发鼠标事件问题及 DataGrid 误触问题 目录 一、触屏事件连带触发鼠标事件问题 二、DataGrid 误触问题及解决方法 独立观察员 2021 年 10 月 10 日 一、...触屏事件连带触发鼠标事件问题 这个是 WPF 已知问题,网络也有一些讨论,但是没有一个完美的方法来解决。...这个方法能满足部分场景,比如之前有这样一个问题, DataGrid 表格上方有一个 DatePicker 日期选择控件,日期展开后,下拉悬浮框会遮表格,当在下拉悬浮框中选择日期后下拉框收起,这时却在表格产生了某个条目的选中效果...然而,本次我实际是要解决一个 DataGrid 表格触屏下误触问题,相关业务逻辑是在行改变事件(转为命令了),本来是没有写 PreviewTouchDown 和 PreviewMouseDown...选是的时候不会有误触现象,选否时候,鼠标操作的话也正常,而如果在弹窗通过触屏点击了否,然后界面空白处(这里是右侧信息区)触屏点击几下,就会在表格之前点击要切换到那一行产生一个鼠标事件

2.5K10
领券