问题标签 [contenttemplateselector]

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 投票
2 回答
760 浏览

wpf - 为什么 SelectTemplate 方法在调试模式下运行 2 次?

调试这个类,SelectTemplate 方法运行了 2 次,但是为什么呢?

第一次该项目始终为空。

0 投票
3 回答
10288 浏览

wpf - ContentTemplateSelector 只被调用一次,总是显示相同的数据模板

我制作了一个示例演示 VS 2010 RC 示例项目,因为在我的生产项目中使用 MVVM 时我遇到了同样的错误。

在我的示例演示项目中,我只使用没有 3rd 方依赖项的代码隐藏,因此您可以在此处下载演示项目并自己运行它:http ://www.sendspace.com/file/mwx7wv

现在问题来了:当我单击女孩/男孩按钮时,它应该切换数据模板,不是吗?

我错了什么?

好的,我在这里也提供了一个代码片段:

代码隐藏 MainWindow.cs

XAML MainWindow.xaml:

数据模板选择器类:

:)

0 投票
1 回答
2216 浏览

wpf - ContentTemplateSelector 并根据 ListBoxItem 选定项选择模板

对于列出一些产品的数据,我有一个 XMLDataProvider 静态资源。我有两个控件作为主细节场景 1)列出所有产品标题的 ListBox 和 2)显示产品详细信息的 CContentControl。

现在它目前工作正常,但 ContentControl 使用的是硬编码模板。我想要的是显示具有不同模板的产品,并且 ContentControl 的 ContentTemplate 应该根据产品的字段(TemplateName)动态选择。我怎样才能做到这一点?我一直在编写 SelectTemplate 覆盖方法,我不知道如何从参数(对象)访问 TemplateName 属性。

任何代码都会有帮助吗?

0 投票
1 回答
4518 浏览

wpf - 根据列表框选择更改 ContentTemplate

我在 StackPanel 中有一个列表框和一个边框,类似于以下内容:

在列表框中选择一个项目时,我想相应地更改 ContentPresenter 中的内容,例如选择 People 将更改模板以显示一系列与人相关的输入字段,而选择 Animals 将显示一系列与动物相关的字段等。 - 其行为类似于 TabControl。

我想我可以通过改变边界中的 DataTemplate 的 DataTrigger 来实现这一点,但我不确定如何实现这一点。

任何指针?

谢谢

0 投票
1 回答
211 浏览

.net - 如何根据对象的值为 GroupBox 选择模板

我希望按值选择组框的内容,那么我如何编写 XAML 来做到这一点?

模板选择器将让我选择要使用的模板,但我想不出以某种方式将此组框与变量中的值相关联的语法?

0 投票
1 回答
2769 浏览

wpf - 在 WPF 中,如何在模板中找到通过触发器切换的元素?

我有一个 UserControl(不是一个不起眼的自定义控件),它根据一些自定义状态属性交换各种 ContentTemplates,所有内容都定义为关联 XAML 文件中的资源。在代码隐藏中,我需要在换入的 ContentTemplates 中找到其中一个元素。

现在在一个无外观的控件(即自定义控件)中,您只需覆盖 OnApplyTemplate 然后使用 FindName,但是当 ContentTemplate 被触发器切换时,该覆盖不会触发(......至少对于 UserControl 而言不是。我没有使用自定义控件测试了该功能。)

现在我尝试将 Loaded 事件连接到交换模板中的控件,该模板在代码隐藏中触发,然后我只需将“发送者”存储在类级变量中。但是,当我尝试通过订阅 Unloaded 事件来清除该值时,它也不会触发,因为模板被换出,因此在它有机会被调用之前取消连接该事件并且控件从屏幕上静默卸载,但我在代码隐藏中仍然有那个挂起的引用。

为了模拟 OnApplyTemplate 功能,我正在考虑订阅 ContentTemplateChanged 通知并仅使用 VisualTreeHelper 来查找我想要的控件,但我想知道是否有更好的方法,因此这篇文章。

有任何想法吗?

作为参考,这是我拥有的控件的一个非常精简的示例。在这个例子中,如果 IsEditing 为真,我想找到名为“FindMe”的文本框。如果 IsEditing 为 false,这意味着 ContentTemplate 没有被交换,我想得到'null'......

啊啊啊,去吧!

0 投票
3 回答
9583 浏览

wpf - 为什么“this.ContentTemplate.FindName”会在自己的模板上抛出 InvalidOperationException?

好吧......这让我难住了。我已经覆盖OnContentTemplateChanged了我的UserControl子类。我正在检查传入的值newContentTemplate是否实际上等于this.ContentTemplate(确实如此)但是当我调用它时......

...它引发以下异常...

“此操作仅对应用了此模板的元素有效。”

根据另一个相关问题的评论者,他说你应该传递控件的内容演示者,而不是控件本身,所以我然后尝试了这个......

... whereFindVisualChild只是 MSDN 示例(见下文)中用于查找关联内容演示者的辅助函数。找到时cp,它也会引发相同的错误。我难住了!!

这是供参考的辅助函数...

0 投票
1 回答
933 浏览

asp.net - 为什么所有内容都在更新面板的内容模板中左对齐?

如果我在更新计时器开始之前在 2 个标签中写入虚拟文本,则一个出现在右侧,另一个出现在左侧,如预期的那样但是,当 updateTimer 进入图片时,两个文本都出现在左侧,彼此粘在一起

这是代码

0 投票
1 回答
1120 浏览

silverlight - DataGridCell 内容模板选择器 Silverlight

我有一个带有动态数据(自定义 DataRows 的集合)的 DataGrid,它是从服务器获取的。DataRow 有一个索引器和一个属性 Data,它返回绑定的整个数据行(您将在下面看到)

我以这种方式创建 DataGrid 的每一列:

我需要做的:我需要根据转换器返回的数据以不同的方式显示 DataGridCells 的内容。
我编写了模板选择器(它继承了 ContentControl)并将其放入 DataGridCell 的 ContentTemplate 属性中,如下所示:

在这种情况下,我将整个 DataRow 作为我的选择器的内容(不明白为什么,因为该列被绑定在行的一项上)并且我的转换器没有被调用。整个数据行是默认的 DataContext,所以我想,在这种情况下,我的代码隐藏绑定只是忽略了。
所以我尝试将我的模板选择器放到 DataGridCell 的 ControlTemplate 中:

但在这种情况下,我将 TextBlock 与空文本作为我的选择器的内容(SHOCKED)。更改内容后调用转换器。如何创建模板选择器,它将根据我的绑定数据选择模板(调用转换器后)?

0 投票
1 回答
2892 浏览

silverlight - 将数据模板选择器绑定到内容控件模板

我想将内容控件绑定到数据模板选择器,将变量绑定到该内容控件,然后根据变量包含的内容显示不同的模板。

我已经设法让 TelerikDataTemplateSelector做我需要它做的事情,但是我找不到绑定DataTemplateSelector到的控件。

我发现的所有允许我使用 a 的控件都DataTemplateSelector要求它ItemsSource是一个集合,如果我传入一个对象,它会引发异常。

我传入的项目是单个项目而不是集合。内容控件似乎是我需要的,但我无法绑定DataTemplateSelector到它。

是否有类似于Content Control的 telerik 控件,我可以将 DataTemplateSelector 绑定到?或者是否有类似于DataTemplateSelector我可以绑定到Content Control的东西。

任何帮助将不胜感激。