问题标签 [wpf-listview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
169755 浏览

.net - ListBox 和 ListView 有什么区别

WPF 的 ListBox 和 ListView 有什么区别?我找不到它们的属性有任何显着差异。有不同的典型用途吗?

0 投票
1 回答
230 浏览

c# - How to detect if a ListView in WPF would need scrolling?

I have several items in a list view in WPF. I'm wanting to add some items to the next "page" when they reach beyond the viewing area. However, I don't want scrolling available. I disable the scrolling.

I don't want scrolling at all, I only want to know if there are items beyond the scrolling. Currently I limit the list by number of items on the page, however my items are not same size nor would I know the size of the screen so this needs to be adjustable.

0 投票
1 回答
179 浏览

c# - Wpf listview 禁用选择但允许单击

我有一个使用 caliburn micro 绑定到数据的简单列表视图。当我单击一个项目时,会发生一个事件,但其他项目获得蓝色选择并且无法再次单击它(没有单击其他地方然后再次单击它)。我怎样才能允许选择相同的项目两次而不必先选择另一个项目?

注意:关于 SO 的所有其他问题似乎都回答了如何删除蓝色突出显示,但我的问题是行为而不是风格

0 投票
1 回答
134 浏览

c# - 从另一个窗口更新主窗口列表

我在 MainWindow.cs 中有一个从数据库获取列表的函数。

我有 CRUD 功能来操作列表。我打开一个新窗口以在列表中添加新项目。在数据库中保存新项目后。我正在从当前窗口调用主窗口的 GetList 函数。但问题是,List 没有在 UI 上更新。我知道我正在新窗口中对主窗口进行新的引用,这可能是我的列表没有更新的原因。但我也不知道该怎么做。. 我获取列表的 .CS 代码是:-

`

调用窗口代码-

0 投票
1 回答
819 浏览

c# - 是否可以以编程方式滚动 WPF ListView 以便将所需的分组标题放置在其顶部?

给定ListView已使用 a 分组的项目的绑定PropertyGroupDescription,是否可以以编程方式滚动以将组放置在列表的顶部?我知道我可以滚动到组中的第一个项目,因为该项目属于ListView绑定到的集合。但是,我找不到任何描述如何滚动到组标题(样式为GroupStyle)的资源。

为了给出所需功能的示例,让我们看一下Visual Studio Code中的设置页面。此页面包含一个面板,允许用户滚动浏览所有应用程序的设置(组织在各自的组下)以及左侧的树结构,以便更快地导航到主面板中的特定组。在随附的屏幕截图中,我单击左侧树中的Formatting选项,主面板自动滚动,相应的组标题位于主面板的顶部。

如何在 WPF 中重新创建它(如果可能的话)?Visual Studio Code中主设置面板的“无限”滚动可以用另一个 WPF 控件来模仿吗?

在此处输入图像描述

0 投票
0 回答
16 浏览

c# - 当用户用鼠标单击对象时如何确定列表视图的行号?WPF

我有一个如下的列表视图。

listView 中的图像有 mouseUpEditProduct 事件:

我的问题是:如何在 mouseUpEditProduct 函数中确定 listView 的哪一行属于鼠标单击的图像?

0 投票
0 回答
88 浏览

listview - 如何在 C# WPF 中选择列表视图的特定行?(未选择行。)

我正在制作一个基本上有列表视图和产品入口的销售点程序。当该人输入相同的产品时,该程序应该增加列表中现有产品的数量,而不是创建一个新的整行。

所以,我的问题是如何在 WPF 的 ListView 中动态添加项目。我的意思是,我想选择列表视图的特定行来获取特定的单元格。但我不想获得选定的行。只是一个特定的行。

让我将其描述为一个矩阵:lvProduct[0][2]。这应该给我第一行的第二个单元格。如何在 C# WPF 中应用它?

我的代码如下:

不幸的是,这段代码不起作用:/

先谢谢大家了!

0 投票
1 回答
66 浏览

wpf - 使用虚拟化在 WPF 中运行时将数千个用户控件添加到 Stackpanel

(也许我问这个非常愚蠢的问题真的很愚蠢,但我真诚地感谢一些示例代码的详细帮助)

我对编程非常陌生,尤其是对 WPF 非常陌生。这是我的第一个 WPF 应用程序,因此我没有任何与 MVVM 相关的知识。所以请不要将此问题链接到 MVVM,因为这是另一个主题,我也在努力学习。我想在没有 MVVM 的情况下解决这个问题。

现有代码简介:

我有一个用户控件(people_tile),没什么特别的,只是一堆标签,具有不同的字体大小、不同的外观等。当我创建这个用户控件的对象时,我将其中一个标签的内容更改为 ID 值数据库中有。其余的事情发生在用户控件内部,当它加载时。我敢肯定,经验丰富的程序员会记得他们开始的日子并嘲笑我,但我仍在学习。

现在,当谈到将这个用户控件带到屏幕上时,我有一个堆栈面板方法。当用户单击主屏幕上的按钮时,页面上会打开另一个用户控件。这个用户控件(people_page)中有一个堆栈面板,它与 people_tile 用户控件一起加载。我对绑定不是很好,所以我所做的只是运行一个 for 循环,将 ID 值传递给为 people_tile 用户控件创建的对象,然后将此 people_tile 控件作为子项添加到 people_page 用户控件上可用的堆栈面板.

问题陈述

所有这一切都工作得很好,没有任何问题或问题,除了当数据增加时,将 people_tile 用户控件添加到 people_page 用户控件的 stackpanel 控件需要很长时间。目前我在 people 表中有大约 1200 个项目。但问题早在 500 件商品本身就开始了。在面板内创建这么多用户控件需要花费大量时间。

需要帮助

我如何在这里使用虚拟化。我已经通过阅读其他帖子尝试了 VirtualizingStackpanels 作为一个选项,但我认为如果我们不使用 Binding 就没有任何意义,所以基本上如果有人可以在以下方面帮助我

  1. 使用绑定加载我的用户控件列表(我认为使用的术语是可观察的集合,但我在这里可能完全错了)

  2. 将此用户控件列表加载为 ListBox,或直接在我的面板中,或通过 ItemsControl,以最首选的方式为准

  3. 请注意,用户控件的数据上下文应该是用户控件本身,因为我在用户控件中填充的其他数据仅使用在 people_tile 用户控件的初始化子中定义的 Datacontext = Me 语句。

  4. 最后,用户控件上有一个单击事件,它在代码中单独执行了很多操作。我们也需要保留这一点。我的意思是,如果我们使用 ListBox 来保存用户控件,那么我可能会失去单个用户控件的点击功能。我不要那个。

真诚的请求:我对 Binding 不太熟悉或精通,​​所以如果您提到 Binding,请告诉我我需要在代码中进行哪些更改以及在哪里进行更改

我用 ListBox 方法尝试过的一些代码参考

在我创建的 XAML 中

在后面的代码中我有这个

将项目暗淡为 List(Of UserControl_Tile_People) = New List(Of UserControl_Tile_People)()

这并没有给我任何虚拟化。它也不加载用户控件。我的用户控件的代码如下

XAML 部分

和用户控件背后的代码

我能够自己解决它,而无需使用任何 MVVM。感谢所有的支持。

0 投票
1 回答
89 浏览

c# - C# WPF ListView 控件 - 绑定数据问题

我在将数据绑定到 ListView 控件时遇到了一些问题。我观看了许多教程,看起来他们就像我在这里所做的那样,要么绑定到集合,要么绑定到具有项目集合的类。

当我在此示例中添加汽车时,列表视图控件中没有添加任何内容。我在这里错过了什么明显的东西吗?我检查了这些汽车是否在运行时添加到集合中。

在此处输入图像描述

车类:

MainWindow.xaml:

MainWindow.xaml.cs:

0 投票
1 回答
42 浏览

c# - width="*" 的网格列未按预期使用所有可用空间

我第一次使用 ListView 时遇到问题。我的自定义项目(当前)应该有 2 行 3 列,每列包含一个标签(第一列宽度 =“自动”),一个文本框(填充第二列(用 =“ ” 或宽度 =“100 ” 测试)和一个第三列中的按钮(宽度=“自动”)

不幸的是,第二列无法缩放以使用完整的 Listview 宽度,但其行为类似于 width="Auto"。

请注意,最初我在 DataTemplate 中使用 StackPanel 作为顶部控件并将其替换为网格,只是为了检查它是否可以解决问题。

在测试应用程序中直接在窗口中测试 DataTemplate Grid 可以按预期工作。