问题标签 [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 回答
4394 浏览

wpf - WPF 动态数据模板:GridView CellTemplate 不为空,但 VisualTree 属性为空

我正在尝试在运行时动态设置我的 ListView.GridView 的 CellTemplate 的 DataTemplate。问题是当我这样做时,什么也没有发生。我检查了 CellTemplate,它不为空,但它的 VisualTree 属性为空。有什么建议么?

0 投票
1 回答
4514 浏览

silverlight-3.0 - Silverlight - 在 DataGrid CellTemplate 的 DataTemplate 中访问布局网格的 DataContext?

我正在使用 Silverlight 3 开发应用程序。在我的应用程序中,我有一个布局网格(名为“LayoutGrid”),其中有一个带有 DataGridTemplateColumns 的 DataGrid(名为“PART_datagrid”)。LayoutGrid 设置了一个 DataContext,其中有一个 Ladders 列表作为属性。此梯形图列表设置为 PART_datagrid 的 ItemsSource。

现在,在其中一个 DataGridTemplateColumns 中,我有一个按钮,它应该调用 LayoutGrid 的 DataContext 中存在的命令。所以我在我的 DataTemplate 按钮上尝试了 Element-To-Element 绑定,如下所示

但这似乎不起作用。我想要实现的是使用命令在父 DataContext 级别处理删除 DataGrid 行的事件。

有人可以建议我该怎么做吗?

提前致谢...

0 投票
2 回答
3863 浏览

c# - XAML 中定义的 DataTemplate 具有 null VisualTree

我将 WPF 与 .NET 3.0 一起使用。

我有一个相对简单的 DataTemplate 定义为 GridView 的 CellTemplate。我希望 DataTemplate 的 VisualTree 属性包含一个 FrameworkElementFactory,但是当我尝试从 GridViewColumnHeader.Click 事件访问它时,该属性为空。为什么 VisualTree 为空?我需要访问它。这是 ListView 定义:

这是事件处理程序:

0 投票
2 回答
1313 浏览

wpf - 将 ListView 用于 CellTemplate 时强制 DataGrid 进入编辑模式

问候,

在 WPF DataGridTemplateColumn 中,我有一个使用 ListView 的 CellTemplate 和一个使用 DataGrid 的 CellEditingTemplate。

我面临的问题是如何在双击时强制列进入编辑模式?这是其他列的默认行为,我相信一般的 DataGrid。按 F2 启动编辑模式,但使用鼠标双击不会。

如果我将 ListView.IsEnabled 设置为 False,那么双击可以工作,但是我有一个禁用的列表视图,它看起来不正确,并且任何样式 hack 都感觉像一个丑陋的杂物。

请注意,我尝试过单击编辑,但没有成功。

任何帮助表示赞赏,谢谢!

0 投票
1 回答
327 浏览

wpf - listView 单元格中的双值

当记录发生更改时,我需要在我的 ListView 中显示新旧值。我的意思是每个单元格都应该显示新值和旧值。现在我正在这样做:

对于下一列,它将是:

但是我有 10 列,对于所有 10 列进行大量复制粘贴并不是那么有趣。

有什么想法可以做得更紧凑、更好吗?

我想要的理想变体是这样的:

0 投票
1 回答
57 浏览

wpf - 没有单元格的 GridViewColumn?

是否可以有 3 个 GridViewColumn 但只有 2 个 CellTemplate ?我希望第一个单元格“占用”左两列?

可能吗 ?

0 投票
1 回答
1049 浏览

silverlight-4.0 - 在后面的代码中完成列绑定时如何触发复选框选中事件?

我有一个数据网格,我在后面的代码中动态创建列。在创建列时,我创建关联的单元格模板和单元格编辑模板以将值转换为布尔值以表示复选框中的数据。一切正常。我想做的是使用命令触发检查事件。我能够通过以下链接在 XAML 中实现这一点,并在后面的代码上做任何事情

http://forums.silverlight.net/forums/p/199477/466179.aspx

我将工作 XAML 代码移动到命令后面的代码未触发。

当我在 XAML 中有代码并在静态资源类中放置一个断点时,我可以看到断点被命中。但是当我把相同的代码放在代码后面的断点时没有命中。我想当我们应用模板时,静态资源就解决了。看起来不是。

现在,我可以通过监听后端数据来捕捉正在发生的变化。我想通过指挥来实现这一点。

有什么意见或建议吗?谢谢

0 投票
0 回答
1687 浏览

wpf - 覆盖 WPF GridViewRowPresenter 的单元格模板

我正在生成一个自定义控件,它使用GridViewRowPresenter的方式与ListView的方式类似- 绑定到我的控件上的ViewBaseColumns类型的属性集合:View

这意味着控件的用户可以使用熟悉的GridView样式语法指定列,例如:

这很好用,但是我的控件(MyControlType)需要能够“覆盖”网格中列的单元格模板,以便它们包含一些额外的内容。

如何在对控件用户需要编写的语法进行最小更改的情况下做到这一点?

0 投票
1 回答
4356 浏览

c# - 根据项目的状态更改 ListView CellTemplate

我有一个 ListView,它有一个 ObservableCollection 作为它的 ItemsSource,它有几个列。其中之一是状态列,根据项目的当前状态,显示不同的消息。目前这是作为基本字符串实现的,虽然它可以工作,但它远非漂亮或用户友好。我希望能够改变输出类型以更适合项目的状态。

我确实做了一些研究,并且知道我需要使用 CellTemplate 来影响显示,但是所有不同类型的模板都让我不知所措,以至于我无法弄清楚下一步该去哪里。

我的代码(不包括许多其他列表视图绒毛)如下:

是的,这些项目具有硬编码的“状态消息”,这些“状态消息”会与与代码实际相关的其他属性一起更新,从而在我的代码中的其他地方造成难看的重复。(是的,我知道这远非漂亮,但我也想改进它。)该属性将被称为ItemState因为我不是那么有创意。

所以,我的问题是:我怎样才能改变这个列,以获得最适合给定状态的显示?文本描述适用于许多状态,但有些相当冗长,可能会从带有进度条的文本中受益,并且可能还有一些剩余时间。另一个州将从拥有可点击的超链接中受益。换句话说,我认为我至少需要 3 个不同的 CellTemplates。

我意识到这是一个相当开放的问题,很大程度上受到了对 WPF 经验很少的人(=我)的设计错误的影响,但这正是我希望有经验的人可以用一些基本代码让我直截了当的原因在我把事情弄得比现在更糟之前。:)

0 投票
1 回答
1281 浏览

wpf - 具有大量行、列和单元格模板的 ListView 中的 GridView

我的 ListView/GridView 有问题。事实上,我的网格有 285 行和 24 列是动态构建的。

我的网格太慢了,然后我决定直接在 XAML 中进行一些其他测试(理论上应该更有效)。所有列都有一个 CellTemplate。

您可以通过以下方式轻松重现该问题:

您可以在每列中看到“双列”样式(有一点图形错误,但不要注意这个事实)。

这里的主要问题是网格的缓慢,它显然不能用作专业网格......我尝试激活虚拟化并禁用它(禁用虚拟化时,加载网格大约需要 17-18 秒。 ..)

是否有一些技巧可以实现高速网格或我做错了什么?我第一次使用 WPF Toolkit Datagrid(我在 Windows XP 中使用 WPF 3.5),我遇到了同样的问题,因为我只想显示数据(根本没有版本),我回到了“老式”的 ListView GridView里面...没有效果恕我直言..

谢谢 !

编辑 1:似乎我已经达到了 WPF GridView 性能可能性的最大值......之前编写的示例只是一个“简单”列表......考虑到我不仅绑定字符串,还绑定字典和复杂结构。此外,所有这些 WPF 应用程序都是一个类库,由 VSTO 加载项启动。

结论:gridview 按原样无法使用......当我禁用虚拟化时,它会在 22 秒内加载。

看来我必须在我的 WPF 窗口中使用 WinForm DataGridView ......你认为这个问题可以解决吗?