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

带有GridView的WPF ListView在更改SelectedIndex后未更新SelectionBox

问题描述:

带有GridView的WPF ListView在更改SelectedIndex后未更新SelectionBox。

解答:

在WPF中,ListView控件是用于显示集合数据的常用控件之一。当ListView的ItemTemplate使用GridView时,可以实现表格形式的展示,并且可以通过更改SelectedIndex来选择某一行数据。然而,有时候在更改SelectedIndex后,ListView的SelectionBox(即选中项的可视化效果)未能及时更新,导致用户无法直观地看到当前选中的行。

解决这个问题的方法是手动刷新ListView的视图。可以通过以下步骤来实现:

  1. 在XAML中,给ListView控件添加一个名为"listView"的名称属性,以便在后续的代码中引用。
代码语言:xml
复制
<ListView x:Name="listView">
    <!-- GridView和其他属性配置 -->
</ListView>
  1. 在代码中,当SelectedIndex更改时,调用ListView的UpdateLayout()方法和ScrollIntoView()方法来刷新视图并确保选中项可见。
代码语言:csharp
复制
listView.SelectedIndex = newIndex;
listView.UpdateLayout();
listView.ScrollIntoView(listView.SelectedItem);

这样,当SelectedIndex更改后,ListView的SelectionBox会被正确地更新,并且选中项会自动滚动到可见区域。

希望以上解答对您有帮助。如果您对WPF、GridView、ListView或其他相关内容有更多疑问,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 使用 HandyControl 给 ListView 添加漂亮表头效果

,因此很多控件默认样式也就被更改了,如本文 ListView 控件 完成了第一步安装库了,下一步就是创建虚拟数据 我想要在界面显示一个 ListView 加上内容,此时我就需要一些虚拟数据用来做界面显示...这部分请看 WPF 控件【L】ListView(三) ListView+GridView+GridViewColumn+DisplayMemberBinding多列绑定数据用法_xpj8888博客-...CSDN博客_wpf gridview 如果只是需要简单定制,如修改颜色等,可以通过重写资源字典方式更改 ListView 定义资源名是 RegionBrush 就可以更改列表项颜色,而通过定义 PrimaryTextBrush...ListView.xaml 这里,代码是完全开源,小伙伴也可以自己去拷贝代码 这个项目所有代码放在 github 欢迎小伙伴访问 ---- 本文会经常更新,请阅读原文: https:

3.6K20

WPF 列表右键菜单比较符合 MVVM 命令绑定方法

> 而此时如果我想要先获取所点击 GridView 是哪一行,然后弹出右键菜单,设置对应属性,此时代码逻辑相对来说很复杂 WPF 如此优秀框架里面怎么也需要提供更清真的方法...让右键菜单知道当前选中是哪个 GridView Row 是很逗比,因为咱可以使用 WPF DataContext 绑定方法,让数据一层层分发。...每一个 GridView Row 项里面都会使用 ListView ItemSource 数据某一项,而咱按照 MVVM 思想,应该变更是数据而不是界面本身 而 DataContext...ListViewItem 界面的,如果这个界面更改和数据无关,那么可以通过修改 Style 方法修改界面,而不是通过后台代码修改属性方式 上面的代码我实际测试项目里面是存在一定更改,本文代码只是给大家演示...bilibili 免费入门视频用项目带你入门 WPF 开发 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E5%88%

3K20
  • 《深入浅出WPF》学习笔记之深入浅出话Binding

    TwoWay 源↔目标 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。 OneWay 源→目标 仅当源属性发生更改更新目标属性。...OneTime 仅当应用程序启动时或 DataContext 进行更改更新目标属性。 OneWayToSource 目标→源 目标属性更改更新源属性。...(Dependency Object)   *容器DataContext (WPF默认使用源)   *ElementName指定源:C#代码中把对象Name作为源赋给Binding   *RelativeSource...6.3.6 没有SourceBinding——使用DataContext作为Binding源   所有WPF控件(包括容器控件)都具备DataContext属性    UI元素树每个节点都有...ListView是一个控件,GridViewListViewView(目前ListView只有此唯一一个View 2010年) GridViewColumn 属于 <GridView.Columns

    5.6K10

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

    一、ListView控件详解WPFListView控件是一个非常强大控件,它可以用来显示列表数据,例如文件列表、电子邮件列表、联系人列表等等。...2.常用场景WPFListView控件常用于以下场景:数据展示:可以使用ListView来展示大量数据,以帮助用户快速查找所需数据。...用户可以通过ListView控件进行快速编辑和更新数据。多列布局:ListView控件提供了多列布局功能,可以使用户更加清晰地看到数据。可以使用GridView来实现多列布局。...多选:ListView控件可以帮助用户进行多选操作。多选模式下,用户可以同时选择多个数据项。排序:ListView控件提供了一些内置排序功能,可以按照数据项某个属性进行排序。...用户可以ListView控件中按照自己需求进行数据排序。ListView控件是WPF中非常强大和灵活控件,可以帮助我们展示和操作各种类型数据。

    60711

    【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

    样式可以控件上显式设置,也可以应用于所有特定类型。 控件模板可以通过样式设置或在控件上显式设置以更改其显示方式。 所有控件都有嵌入 .net wpf 程序集中默认模板(和样式)。...自定义现有类型时,WPF 也更加灵活。WPF 更适合创建“华丽” GUI。 只是它需要比 WinForms 更新 .net 框架,并且需要兼容 dx9 或更高 GPU。...冻结 Freezable 可以提高其性能,因为它不再需要在更改通知上花费资源。 冻结 Freezable 也可以跨线程共享,而冻结 Freezable 则不能。...进行命中测试相对来源 (FindAncestor) 28.WPF应用程序集中添加新文件时,Page和Window有什么区别?页面旨在用于导航应用程序(通常带有后退和前进按钮,例如浏览器)。...一个很好例子是对稍后 XAML 中定义资源前向引用。 另一个例子是直到运行时才会存在资源。 如果源资源字典发生更改,它将更新目标。

    49422

    C# Xamarin移动开发项目实战篇

    UI组件更新一定要在UI线程里 android为了线程安全,不允许UI线程外子线程操作UI,这个结论不仅仅是说android,这个概念同样适用于其他客户端系统,它好处时提高客户端UI用户体验和执行...3.7、Android漂亮主菜单界面(GridView) GridViewListView用法基本一致,不同只是布局。当我们打开手机,应用会以宫格显示,那就是GridView。 ...ListViewGridView 是 AdapterView 子类,它们可以绑定填充到一个适配器,从外部源检索数据,并创建一个视图表示每个数据项。...3.8、Android漂亮列表展示数据(ListView) GridViewListView用法基本一致,不同只是布局。当我们打开手机,应用会以列表显示,那就是GridView。 ...所以说大家不要认为xamarin for android 开发有多么困难,现在微软也大力更新xamarin,之后对我们开发者来说只有越来越方便了。

    9.9K50

    Smobiler 4.4 更新预告 Part 1(Smobiler能让你在Visual Studio上开发APP)

    4.4版本中,大家对产品优化一些建议和意见进行了相应优化和修复,同时,还新增了一些令人激动功能和插件。...2, ListViewGridView、PageView增加UpdateRow,UpdateCell,UpdatePage方法,可根据数据源更新内容。...5, 添加TitleHeight属性以可以调整图片详情界面中Title高度,返回按钮也可根据Title高度调整。 修复 1, 修复ToolBar中MessageText不再可更改为空问题。...2, 修复GridViewListView中Head、Foot没有数据不显示问题。 3, 修复FontIcon取消选择时默认显示adjust问题。...6, 修复Picker中内容设置为空时会崩溃问题。 7, 修复设计器撤销控件更改时,控件丢失问题。 Smobiler 4.4新功能和插件请期待下一Part预告。

    59230

    Android开发笔记(三十八)列表类视图

    2、定义了一个数据观察者AdapterDataSetObserver,用于列表数据发生变化时,可以通过notifyDataSetChanged方法来更新视图。...像ListViewGridView一般都是直接使用BaseAdapter,并不使用布局过于简单SimpleAdapter。...该属性API17增加,即Android4.2.2以上版本才支持。代码中对应方法是setTextAlignment。 ListView ListView是列表视图,用于分行显示列表信息。...下面是GridView常用属性和方法: xml布局上属性设置: horizontalSpacing : 指定子视图水平方向间距。...GridView适配器模板与ListView是一样,只要换掉代码里布局文件名以及相关控件名称就好了,所以不再重复贴出GridView适配器代码。

    2.3K20

    Flutter中构建布局 顶

    步骤0中,您将该图像包含在项目中并更新了pubspec文件,以便现在可以从代码中引用它: body: new ListView( children: [ new Image.asset(...如果所有布局小部件带有一个子元素(例如Center或Container),则它们具有一个child属性,如果它们带有小部件列表(例如Row,Column,ListView或Stack),则它们具有children...GridView: 放置小部件作为可滚动网格。 ListView: 将小部件列为可滚动列表。 Stack: 将小部件重叠在另一个小部件之上。...使用GridView.count纵向模式下创建2个宽度网格,横向模式下创建3个宽度网格。 标题是通过设置每个GridTile页脚属性创建。...Flutter中,一张卡片具有稍微圆润角落和阴影,使其具有3D效果。 更改卡片elevation属性可让您控制投影效果。

    43.1K10

    BaseAdapternotifyDataSetChanged方法

    都用过 BaseAdapternotifyDataSetChanged()方法,用法很简单,当BaseAdapter数据更新了,需要更改显示,这时候就要调用notifyDataSetChanged(...)方法来更新数据,当然你可以用一种比较恶心方式,在你所使用AdapterView(这里是指AdapterView子类,ListViewGridView,Gallery等等),调setAdapter...ListViewsetAdapter()函数,虽然ListView不是直接继承AdapterView,但是并不影响我们分析setAdapter机制,为了方便大家阅读,我代码中做一些注释: /*...细心同学可能会发现,BaseAdapter中以notify开头函数有四个,其实都是跟通知有关,但是前两个是Object函数中实现,用于线程锁相关。我们只关心两个。...这个函数中做了这么几件事: 下面我们看一下更新是如何完成listView中有如下函数: private View makeAndAddView(int position, int y,

    1.1K30

    Flutter 入门指北之滑动部件(超详细)

    如果需要在每个 item 之间添加分割线,那么通过以上方式实现就比较困难了,所以 Flutter 提供了 separated 方法用来快速构建带有分割线 ListView 加入我们 item 之间分割线需要如下样式...ExpansionTile 既然讲到了 ListView日常开发中,折叠列表也是一个比较常用,所以这边要提下 ExpansionTile 这个部件,因为相对比较简单,所以直接上代码了 class...GridView 生成列表可以通过 ListView 来实现,那么同样,实现网格列表 Flutter 也提供了 GridView 来实现,实现 GridView 方法也很多...我数了下,大概有 10...GridView.builder 前面介绍方法中,生成 item 方式基本上是通过 List 进行转换 custom 提到了 IndexWidgetBuilder 生成方式,当然, ListView...该部分代码查看 gridview_main.dart 文件 CustomScrollView 平时开发中,应该会遇到这么种情况,头部是一个 GridView 接下来拼接一些别的部件,然后再拼接一个列表

    2.5K30

    WPF 修改 ItemContainerStyle 鼠标移动到选中项效果和选中项背景

    本文告诉大家如何通过修改 ItemContainerStyle 让 ListView 或 ListBox 选择效果如鼠标移动到选中项效果或选择项背景 先写一些简单代码用于界面的绑定 public...ListView 默认鼠标移动到没有被选择时候会出现背景 ...> 通过写样式 ItemContainerStyle 可以让 ListView 鼠标移动到选择项特效颜色修改 <!...MouseOverColor 为透明,通过设置 SelectedBackgroundColor 可以让选中项背景修改 因为颜色 WPF 使用 #AARRBBGG 表示,如上面代码设置了 #00FFFFFF...就是透明,因为第一个 Alpha 为 0 也就是透明 ListView 使用刚才写样式,运行代码可以看到下面图片 <ListView ItemsSource="{Binding

    2.3K20

    【译】Visual Studio 2019 中 WPF & UWP XAML 开发工具新特性

    应用内工具栏现在主题(v16.2) 应用内工具栏元素选择行为更改: 我们更新了应用程序内工具栏功能“启用选择”行为,用于在运行应用程序中选择元素。...进行此更改,选择器将在选择第一个元素停止选择元素。这使其与类似的工具(例如F12浏览器工具)保持一致,并且基于客户反馈。...为 WPF 资源字典更改(v16.3)添加了 XAML Hot Reload 支持: XAML Hot Reload 现在支持更新 WPF 资源字典以应用程序中进行实时更新。...在上下文菜单中,选择“将资源字典合并到活动窗口中”选项,该选项将添加带有路径正确合并 XAML。 ?...进行此更改,“编辑模板”功能现在将可用,并且可以像现在可用源第一方元素一样使用。请注意,此功能适用于第三方控制库和没有源第一方。

    7.3K30

    羊皮书APP(Android版)开发系列(二十四)不常用但是很有用两个属性:clipToPadding 和 clipChildren

    提出问题: 当我们为ListView、ScrollView、GridView设置了paddingTop或paddingBottom时候,我们发现当滑动到顶部和底部时候,默认情况下padding/margin...解决办法: 布局ListView、ScrollView、GridView中将clipToPadding设置为false即可。...提出问题: 类似微信读消息布局中,设置角标总是布局内部,也就是在其父页面的内部,达不到微信效果。 问题原因: clipChildren默认是true,导致子布局不能绘制到父布局外面。...案例 ListView滚动时候可以透过ActionBar看到下面的ListView内容。 ?...1426596831861410.png listview设置了padding 不是全部充满屏幕。 ? 添加clipToPadding ? 添加clipToPadding前

    1.2K20
    领券