问题标签 [datatemplate]

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 投票
8 回答
57737 浏览

wpf - 如何使 WPF 数据模板填充列表框的整个宽度?

ListBox DataTemplate在 WPF 中有一个。我希望一件物品紧贴左侧ListBox,另一件紧贴右侧,但我不知道如何做到这一点。

到目前为止,我有一个Grid三列,左侧和右侧有内容,中心是一个占位符,其宽度设置为“*”。我哪里错了?

这是代码:

0 投票
2 回答
17359 浏览

wpf - 如何从 ContentTemplate 绑定到周围的自定义控件?

我有以下用户控制:

这个自定义的 TabItem 定义了一个DependencyProperty“ShortLabel”来实现一个接口。我想从TabItem's中绑定到 this 和其他属性DataTemplate。但是由于奇怪的交互,其中TextBlockDataTemplate被绑定到 的父容器,该容器TabItem也称为“Self”,但在另一个 Xaml 文件中定义。

问题

为什么绑定在 TabItem.Header 中起作用,但在 TabItem.ContentTemplate 中不起作用,我应该如何继续从 DataTemplate 中获取用户控件的属性?

我已经尝试过的

  • TemplateBinding: 尝试在TabItem.
  • FindAncestor, AncestorType={x:Type TabItem}: 找不到TabItem父母。MyTabItem当我指定类型时,这也不起作用。
  • ElementName=Self: 尝试绑定到错误范围内具有该名称的控件(父容器,而不是TabItem)。我认为这给出了一个提示,为什么这不起作用:DataTemplate 不是在 XAML 中定义的位置创建的,而是显然是由父容器创建的。

我假设我可以替换整个ControlTemplate来实现我正在寻找的效果,但是由于我想保留默认外观TabItem而不必维护整体ControlTemplate,所以我非常不愿意这样做。

编辑

同时我发现问题是:如果包含s,则TabControls 不能有(任何)ItemsTemplate(包括) 。MSDN 论坛上有一个帖子解释了原因。DisplayMemberPathItemsSourceVisual

由于这似乎是 WPF 的 TabControl 的一个基本问题,所以我要结束这个问题。感谢你的帮助!

0 投票
3 回答
92407 浏览

c# - 如何在 C# 代码中构建 DataTemplate?

我正在尝试为 winform 互操作构建一个下拉列表,并且我正在代码中创建下拉列表。但是,我在根据我指定的 DataTemplate 获取要绑定的数据时遇到问题。

我错过了什么?

0 投票
1 回答
8822 浏览

wpf - WPF ListBox 绑定到项目的索引

将某些内容绑定到 ListBox 的 SelectedIndex 很容易,但我希望 ListBox 中的每个项目都能够绑定到它在列表中的索引。

可能听起来很奇怪,所以这就是我想要做的:

我想将超链接的 TAG 属性绑定到相关项目的索引。这样当用户单击超链接时,我可以使用该超链接的 TAG 属性确定是什么项目导致了事件。

建议?

0 投票
2 回答
3405 浏览

silverlight - Silverlight 的 DataTemplate 中缺少 FindName 方法是否有解决方法?

根据 C# 编译器和 Silverlight 2 文档,Silverlight 没有为 DataTemplate 类提供 FindName 方法。我想在 ContentPresenter 中找到一个边框。SilverLight 2 中最好的方法是什么?

0 投票
1 回答
2574 浏览

c# - 运行时切换数据模板——刷新问题

我使用 MVVM 架构来解耦我的应用程序。也就是说,你经常看到类似的东西

UI 是通过驻留在其自己的 XAML 文件中的资源字典中的数据模板定义的

我在应用程序启动时加载资源,应用程序很乐意显示我的 UI。但是如果我删除一个数据模板并添加一个新的(相同的键,相同的数据类型),UI 仍然使用旧的数据模板。当然,我可以重新设置容器的内容以强制刷新,但这似乎很愚蠢,因为我必须通知每个控件有关更改,就像这样

还有其他方法吗?

0 投票
4 回答
13809 浏览

wpf - 关注 DataTemplate 中的文本框

我已经DataTemplate包含一个TextBox. 我将此模板设置为选择中的列表框项目。

我无法将焦点设置到模板中的文本框。我尝试调用 MyTemplate.FindName,但它以无效操作异常结束:此操作仅对应用了此模板的元素有效。

我怎样才能访问它?

0 投票
2 回答
899 浏览

wpf - 应用程序在更改包含带有 ItemTemplates 的 ListBoxes 的选项卡时崩溃

我有一个带有两个 TabItems 的 WPF TabControl。每个 TabItem 都包含一个 ListBox,其中一个单独的 ObservableCollection 作为其 ItemsSource。每个 ListBox 都有不同的 ItemTemplate。

无论我设置在启动时选择哪个 TabItem,该选项卡都会正常显示,但是当我单击另一个选项卡时,应用程序崩溃,并出现“调用目标引发异常”错误,指向 DataTemplate我要切换到的选项卡。

如果我从选项卡上的 ListBox 中删除 ItemTemplate,我试图切换到(并使用 DisplayMemberPath)一切正常。

但是,如果我使用 DataTemplate,无论是内联还是作为静态资源或动态资源,都会导致选项卡切换时崩溃。

有任何想法吗?伪代码如下:


公共 Window1() { InitializeComponent();

}

0 投票
2 回答
6902 浏览

c# - WPF 中的 ComboBox 模板问题

我有一个带有 ComboBox 的 DataTemplate 的列表视图。我希望 ComboBox 看起来像标签一样平坦,直到用户真正想要更改值。我之前有下面的例子,但我改变了一些东西,现在它不再工作了,我不知道为什么。

IsMouseOver 属性似乎无法正常工作,因为它仅在鼠标位于控件边界时才设置。

我该怎么做才能使这项工作正常进行?

这是一个片段:

0 投票
1 回答
753 浏览

wpf - 如何从数据绑定的 ItemsControl 中获取模板化项目的实例?(WPF)

我有一个<ItemsControl>带有自定义的<DataTemplate>(还有一个<ItemsPanelTemplate>只是 a的自定义WrapPanel),通过绑定ItemsSource到一个简单的可观察字符串集合。

DataTemplate仅包含一个自定义实例,其UserControl属性通过 绑定到字符串{Binding}

问题是因为我的数据项只是字符串,我需要UserControl直接以编程方式访问我的实例,但我似乎无法弄清楚如何!

我试过了:

...但这只是返回字符串。还:

...返回 a ContentPresenter,我不知道如何处理ContentPresenter以获取 my 的实例UserControl

??

这类似于这个问题,但它从未得到正确回答,并且也是 Silverlight 特有的,而这是 WPF。