问题标签 [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.

0 投票
1 回答
2220 浏览

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。

0 投票
0 回答
101 浏览

c# - DataGridCellTemplate 绑定到 ViewModel 命令

对于此列中的每个单元格,我想从我的视图模型中绑定一个命令,在每个可以执行该命令时,我不想发送我的项目源中每个项目的“实体”属性。

数据网格:

所以 Command 和 CommandParameter 为每个单元格中的每个 CheckBox 绑定,

问题是,当命令被绑定时,可以使用一个为 null 的参数来执行

调试时,似乎 CommandParameter 仅在 Command 之后绑定(因此为空值)

似乎在更新 CommandParameter 时复选框不会 Raise 可以执行(我使用反射器查看,我没有看到对 CommandParameter 属性的任何回调)。

我以前用其他类型的 ItemsControls 做过这种事情,这从来都不是问题,这似乎是由于处于 CellTemplate 的上下文中而引起的奇怪行为。

我在视图模型中的命令:

我的 ICommand 实现:

有任何想法吗?

编辑 :

我可以找到一些方法:

我相信这会解决问题,因为命令将再次查询它的所有命令参数,并且命令参数将对其所有绑定进行采样,它似乎不合理,它不是由引擎盖下的复选框控件处理的(正如我提到的在 CommandParameter 更改之前)

0 投票
1 回答
4315 浏览

wpf - 如何在 CellTemplate 中为 DataTemplate 设置特定的 Datacontext

目前我绑定到一个List<T>所以我必须为每个列单独设置特定的DataTemplate

像这样:

但我想要的是创建DataTemplate一次作为资源

并像使用它一样

但要这样做,我需要在我的DataContext(ObColl[Idx]) 中具体说明,DataGridTemplateColumn 但我该怎么做呢?


编辑

xaml 应如下所示:

DataContext={Binding ObColl[1]}是问题部分,因为它不存在....

0 投票
1 回答
1386 浏览

wpf - DataGridTemplateColumn InvokeCommandAction 模板

我正在使用一个 UserControl,其中内部的主控件是一个数据网格。一切正常。但是,我的一些代码行是多余的,因为我在 48 列中的每一列中都实现了相同的触发器。

如何为以下代码片段的 datagridtemplatecolumn 制作模板?每列中唯一不同的是绑定属性。所有的触发器和格式都是一样的。

我会很感激你的帮助!

编辑

因此,我按照 Sheridan 的建议进行了一些修改,以使其更短更简单。虽然我们的项目负责人之前建议过这种方法,但在 Sheridan 提出意见之前,我不知道如何实施。给他点赞

这是我们使用的 UserControl 的代码。它包含的触发器与我们在上面的原始代码中使用的触发器完全相同:

在 DataGridTemplateColumn 本身上,我们只是添加了 UserControl(DGInfo) 并像以前一样设置它的背景。因此节省了数千行。

0 投票
1 回答
121 浏览

wpf - 无法在 wpf 数据网格中再次选择收音机(编辑时收音机,非编辑时图像)

我有一个带有单元格编辑/非编辑模板的 wpf 数据网格。我也可以显示单选按钮(编辑模式)或图像(非编辑模式)。选中单选时图像可见(绑定属性为真)。收音机都是分组的。编辑/非编辑模板都声明了收音机,以便收音机组行为起作用。

我有一个非常奇怪的错误:我创建了几个项目并检查收音机。有时我不能再检查收音机了,它们都没有检查。重现这很奇怪,但是使用 3 项而不是 2 项,该错误似乎更早出现。

我可能做错了什么?

0 投票
1 回答
4970 浏览

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 参数作为第二个参数的过滤器(并且此过滤器也将在“聚合”视图中使用)。因此,如果您有具有不同翻译的不同列,您仍然可以使用相同的过滤器,但使用多个范围变量进行翻译。

希望这是有道理的,并帮助一些可能有同样问题的人......

0 投票
1 回答
227 浏览

wpf - .NET 3.5 DataGrid 的 CellTemplateSelector 传递 DataRowView 而不是单元格内容

我正在使用 WpfToolkit for .NET 3.5 中的 DataGrid。我正在显示数据表。我希望负数为红色。列数是可变的,因此 AutoGenerateColumns 为 True。

按照这里的建议http://wpftutorial.net/DataGrid.html我做了以下事情。但是,每当调用 TemplateSelector 时,item 都是 DataRowView 而不是单元格内容。如何引用单元格内容?

XAML 中的数据网格

选择器

绑定数据表的代码

谢谢安迪

0 投票
1 回答
3562 浏览

css - 在 ng-grid 单元格模板中包装文本?

我有一些显示如下的文本:

它基本上循环遍历我在 .js 文件中声明的“文本”变量数组,并在单元格中显示内容。有没有办法包装文本,使其围绕我提供的 20% 宽度?我知道style="white-space: normal可以进行文本换行,但我不确定如何将其与我上面的语句结合起来。如果有人可以提供帮助,那就太好了。

谢谢!

0 投票
1 回答
1531 浏览

angularjs - ng-grid cellTemplate 单元格的背景颜色问题

当我在数据中有一个值作为空字符串“”并且我在 cellTemplate 中使用背景颜色时,它不会为整个单元格着色。这是说明问题的plunke。

http://plnkr.co/edit/TP4VH9xA7qCFT8xgNKW8?p=preview

有人可以帮我解决它。

0 投票
1 回答
1741 浏览

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!