问题标签 [celltemplate]
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.
c# - WPF DataGrid 列虚拟化
我正在尝试在我的 DataGrid 上执行水平虚拟化。我的收藏是类型:
它的第一个维度长度是 64,第二个维度大约是 5000
我一直在使用 Paul McClean 的 VirtualCollection来实现垂直虚拟化
我的 IItemsProvider 封装了一个迭代器,它返回字符串 [] 的项目,它代表我表中的一行。
我的 ItemsProvider :
迭代器:
}
综上所述,我通过 VirtualCollection 接收特定范围的字符串 [] 项。
我现在正在尝试对列进行虚拟化,我的列是在运行时由给定的 Extent 生成的,这是在附加属性的回调中完成的,在静态类 DataGridBuilderUtil 中
CS :
在 DataGridBuilderUtil 我还附加了 DataGrid 的 ScrollViewer ScrollChanged 事件,当水平范围发生变化时:
1)我添加了一个新列。
2) 我更新了 Iterators Extent 以容纳另一列。
3)我重新垂直滚动到相同的位置,这使得我的 ItemsSource (VirtualCollection) 派生自 IList 来查询它的索引并再次请求当前页面(在我的标志 IsDefferedLoadPageRequired 的帮助下)
所以现在在 VirtualCollection 里面
这需要 ItemsProvider :
它需要 Iterator ,请记住,我们的 Extent 已递增以容纳另一列。
所以现在我有一个字符串 [] 项目,它增加了字符串 [20] 项目现在是字符串 [21] 我的水平数据虚拟化工作。
问题是我的单元格以这种方式绑定:(来自上面的 CreateColumn 方法)
在新列中的每个单元格中都有绑定错误(加载集合时生成的原始列中的绑定工作正常:
我认为这与创建列时该行的数组项不包含该索引有关,或者我也尝试在更新数组后创建列。
结果相同。
这里最大的问题是,为什么绑定不起作用,以及如何刷新绑定?
此外,我设置 DataGrid.EnableColumnVirtualization = True 将所有这些结合在一起(如果绑定有效)。
编辑 :
我还尝试在更新集合后创建列:
在 VirtualCollection 重新加载当前页面后引发 OnLoadComplete。
c# - DataGridCellTemplate 绑定到 ViewModel 命令
对于此列中的每个单元格,我想从我的视图模型中绑定一个命令,在每个可以执行该命令时,我不想发送我的项目源中每个项目的“实体”属性。
数据网格:
所以 Command 和 CommandParameter 为每个单元格中的每个 CheckBox 绑定,
问题是,当命令被绑定时,可以使用一个为 null 的参数来执行
调试时,似乎 CommandParameter 仅在 Command 之后绑定(因此为空值)
似乎在更新 CommandParameter 时复选框不会 Raise 可以执行(我使用反射器查看,我没有看到对 CommandParameter 属性的任何回调)。
我以前用其他类型的 ItemsControls 做过这种事情,这从来都不是问题,这似乎是由于处于 CellTemplate 的上下文中而引起的奇怪行为。
我在视图模型中的命令:
我的 ICommand 实现:
有任何想法吗?
编辑 :
我可以找到一些方法:
我相信这会解决问题,因为命令将再次查询它的所有命令参数,并且命令参数将对其所有绑定进行采样,它似乎不合理,它不是由引擎盖下的复选框控件处理的(正如我提到的在 CommandParameter 更改之前)
wpf - 如何在 CellTemplate 中为 DataTemplate 设置特定的 Datacontext
目前我绑定到一个List<T>
所以我必须为每个列单独设置特定的DataTemplate
像这样:
但我想要的是创建DataTemplate
一次作为资源
并像使用它一样
但要这样做,我需要在我的DataContext
(ObColl[Idx]) 中具体说明,DataGridTemplateColumn
但我该怎么做呢?
编辑
xaml 应如下所示:
这 DataContext={Binding ObColl[1]}
是问题部分,因为它不存在....
wpf - DataGridTemplateColumn InvokeCommandAction 模板
我正在使用一个 UserControl,其中内部的主控件是一个数据网格。一切正常。但是,我的一些代码行是多余的,因为我在 48 列中的每一列中都实现了相同的触发器。
如何为以下代码片段的 datagridtemplatecolumn 制作模板?每列中唯一不同的是绑定属性。所有的触发器和格式都是一样的。
我会很感激你的帮助!
编辑
因此,我按照 Sheridan 的建议进行了一些修改,以使其更短更简单。虽然我们的项目负责人之前建议过这种方法,但在 Sheridan 提出意见之前,我不知道如何实施。给他点赞
这是我们使用的 UserControl 的代码。它包含的触发器与我们在上面的原始代码中使用的触发器完全相同:
在 DataGridTemplateColumn 本身上,我们只是添加了 UserControl(DGInfo) 并像以前一样设置它的背景。因此节省了数千行。
wpf - 无法在 wpf 数据网格中再次选择收音机(编辑时收音机,非编辑时图像)
我有一个带有单元格编辑/非编辑模板的 wpf 数据网格。我也可以显示单选按钮(编辑模式)或图像(非编辑模式)。选中单选时图像可见(绑定属性为真)。收音机都是分组的。编辑/非编辑模板都声明了收音机,以便收音机组行为起作用。
我有一个非常奇怪的错误:我创建了几个项目并检查收音机。有时我不能再检查收音机了,它们都没有检查。重现这很奇怪,但是使用 3 项而不是 2 项,该错误似乎更早出现。
我可能做错了什么?
angularjs - ng-grid cellTemplate 和分组:我可以更改“分组”行的模板吗
我一直在检查 ng-grid,并将 columnDefs 更改为对某些列使用不同的 cellTemplate。该模板不显示实际值,而是在另一个对象中查找它,以使其对最终用户更具可读性(基本上是一个外键 id,被翻译成人类可以理解的东西)。
当我在 gridOptions 中启用 showGroupPanel: true 时,您可以将一列拖到“分组”栏,结果将被分组。
当我使用我为其编辑模板的列之一执行此操作时,它不使用我的 cellTemplate,并再次显示 id。
有没有办法确保在组的标题中,我也可以使用自己的模板,而不是 ng-grid 简单地显示值?
[更新] 一些代码(简化为 1 列以仅显示本质)可能更容易理解(任何代码错误都是拼写错误,这不是我真实代码的复制粘贴):
HTML:
JS:
因此,当我将此列拖到分组栏中时,我还希望在 goup 标题中看到描述,而不仅仅是 id ...
[更新 2] 解决方案
我想我找到了一个很好的解决方案。
事实证明,我不需要 cellTemplate,只需要一个过滤器。
所以,如果你在你的模块上定义一个新的过滤器,像这样:
);
你可以替换这个:
通过以下
这将添加带有 $scope.topicid_fkvalues 参数作为第二个参数的过滤器(并且此过滤器也将在“聚合”视图中使用)。因此,如果您有具有不同翻译的不同列,您仍然可以使用相同的过滤器,但使用多个范围变量进行翻译。
希望这是有道理的,并帮助一些可能有同样问题的人......
wpf - .NET 3.5 DataGrid 的 CellTemplateSelector 传递 DataRowView 而不是单元格内容
我正在使用 WpfToolkit for .NET 3.5 中的 DataGrid。我正在显示数据表。我希望负数为红色。列数是可变的,因此 AutoGenerateColumns 为 True。
按照这里的建议http://wpftutorial.net/DataGrid.html我做了以下事情。但是,每当调用 TemplateSelector 时,item 都是 DataRowView 而不是单元格内容。如何引用单元格内容?
XAML 中的数据网格
选择器
绑定数据表的代码
谢谢安迪
css - 在 ng-grid 单元格模板中包装文本?
我有一些显示如下的文本:
它基本上循环遍历我在 .js 文件中声明的“文本”变量数组,并在单元格中显示内容。有没有办法包装文本,使其围绕我提供的 20% 宽度?我知道style="white-space: normal
可以进行文本换行,但我不确定如何将其与我上面的语句结合起来。如果有人可以提供帮助,那就太好了。
谢谢!
angularjs - ng-grid cellTemplate 单元格的背景颜色问题
当我在数据中有一个值作为空字符串“”并且我在 cellTemplate 中使用背景颜色时,它不会为整个单元格着色。这是说明问题的plunke。
http://plnkr.co/edit/TP4VH9xA7qCFT8xgNKW8?p=preview
有人可以帮我解决它。
c# - c# WPF TreeView in ListView via CellTemplate
I am new to WPF and XAML..
I want to add an TreeView into a ListView Element with a CellTemplate..
I want to bind each ListViewItem to a Custom class called "Symbol"
This Class has an Property called "Name" and a Property called "Images".
"Name" is just a String, which should be the root Element of the TreeView..
"Images" is a List of Strings.
Each entry of this list should be an Children of this TreeView..
And please do not just leave a code snippet, i want to understand how CellTemplates work!
Thank you!