问题标签 [datatemplateselector]

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 回答
184 浏览

c# - 复杂数据模板

我在这里实现了CustomDataTemplateSelector实现 Windows Phone 7 DataTemplateSelector 和 CustomDataTemplateSelector。但在我的解决方案中,只有一个部分在所有 DataTemplates 中发生变化,DataTemplates 的其他部分很常见:

这里Grid1Grid2是不同的部分。是否可以“拆分”这些数据模板?

0 投票
2 回答
26398 浏览

wpf - 动态更改数据模板

我有一个绑定到任务的项目控件。每个任务都有任务状态。我为每个任务状态定义了不同的数据模板,以及数据模板选择器。

问题是当任务状态动态更改时,我无法弄清楚如何触发数据模板选择器。

我想知道如何将数据触发器与数据模板一起使用。

如果这行不通,我将探索其他替代方案,例如
1. 绑定到任务状态的附加属性。任何更改都会动态设置数据模板。
2. 视觉状态管理器

0 投票
1 回答
1029 浏览

windows-phone-7 - 如何在 Windows Phone 中触发数据模板选择器?

我有一个属性,根据它的状态(比如 A 和 B),我要么显示动画的用户控件,要么显示图像。

现在,如果属性发生变化,我想再次触发数据模板选择器。在搜索时,我发现在 WPF 中我可以使用 DataTemplate.Trigger 但它在 WP 中不可用。

所以,我的问题是

  • 他们是触发数据模板选择器的一种方式,因此当属性从状态 A 更改为 B 时,会选择适当的用户控件。如果是,那么请举例说明如何实现它。

另外,由于只有两种状态,如果认为我可以使用Converter来折叠visibility。对于基本的 if else 情况,我需要编写两个转换器。(我可以仅使用一个转换器以某种方式做到这一点吗?)这是确切的情况。

如果状态 == A :

选择 userControl_A

否则:选择 userControl_B

还,

  • 动画用户控件在折叠状态时会影响性能吗?

编辑- 刚刚意识到,我可以使用参数对象来编写一个转换器。

0 投票
1 回答
801 浏览

c# - 将 x:array 绑定到属性

由于我经常使用TemplateSelectors基于类型来区分模板,因此我尝试编写一个TemplateSelector具有属性来保存类型/模板关系的模板。

我尝试使用x:Array在 XAML 中设置此属性。这不起作用,因为 VS 抱怨这x:Array不是一个实现的类,IEnumerable根据文档它应该

MSDN:

但是 x:Array 也可用于使用 XAML 填充某些属性,这些属性将通用集合支持接口或类作为其结构化属性内容,例如 IEnumerable。

这里对应的代码行

模板选择器

在 XAML 中使用

使用的类型和模板应该是正确的。如果我执行代码,我会在运行时收到此异常:

无法将属性“模板”中的值转换为“EP3_gui.UI.ContentTemplates.TypeTemplate[]”类型的对象。“System.Windows.Markup.ArrayExtension”类型的对象无法转换为“EP3_gui.UI.ContentTemplates.TypeTemplate[]”类型。标记文件 'EP3_gui;component/ui/readmsfrcontrol.xaml' 第 36 行位置 11 中的对象 'blub' 出错。

任何提示我的错误可能在哪里?

0 投票
0 回答
365 浏览

xaml - ListView set Column datatemplate(celltemplateselector) 取决于来自另一列的数据

我有一个 ListView,您可以在下面的代码中看到:

我的问题是我不想根据从第一列字段名称中的选择来更改列中的 CellTemplate,但是我该如何触发它。

选择字段后,我的模型 cald FieldDatatype 中有一个属性,我从中确定第一列中选​​择的字段的类型。正如您在Value列中看到的那样,我设置了一个 CellTemplateSelector(FieldValueTemplateSelector) ,但是这个设置只有一次数据模板,并且当我从第一列中选​​择其他字段时不会刷新。

0 投票
4 回答
5277 浏览

c# - DataTemplateSelector 中的项目为空

好吧,使用 dataTemplateSelector 根据枚举值为我的视图模型选择正确的数据模板时遇到了一点问题。

这是一个重现该问题的演示。

我有一个视图模型使用的模型层次结构

定义模型类型的枚举是:

模型基类是:

子模型类是:

我的 MainViewModel 和 ModelViewModel 分别是:

之后,我的 MainView 中有一个列表框,它使用项目模板来显示每个项目。

这个item模板使用ModelView的其他视图来渲染item。ModelView展示了公共信息,具体的模型数据由ModelSelector选择的view展示。

目前,模型选择器可以选择的视图是 A 和 B:

模型选择器是:

问题是DataTemplateSelector中的参数项为null,而另一个参数(Container)的dataContext为null。我无法知道ModelViewModel的值是什么来选择正确的视图。

如果我将数据模板放在 ListView 项目模板中,则该项目具有 ModelViewMode 的值,但我需要将该模板放在单独的文件中,因为它将用于应用程序的不同部分。

我不知道我可以访问 ModelSelector 中的 ModelViewModel 吗?

0 投票
1 回答
1190 浏览

c# - 如何使这个 DataTemplateSelector 工作?

在我的 Viewmodel 中,我具有LoggedInAs字符串EditMode类型和布尔类型的属性。我还有一个名为 List 的属性ReaderList,我将其绑定到 ItemsControl 用于显示目的,如下所示:

我使用的是 Caliburn.Micro,所以绑定是通过命名自动完成的。我想使用 DataTemplateSelector 因为如果应用程序处于 EditMode 并且 Person 是登录的人,我想要一个完全不同的显示。所以这是我对资源的声明,

这里是类的代码:

由于某种原因,应用程序在实例化 Viewmodel(分别是 View)时崩溃。错误在哪里,和/或我该如何解决这个问题?

编辑:崩溃是由于 DisplayReaderTemplateSelector 的构造中的绑定表达式 - 因为IsLoggedIn并且EditMode不是 DependencyProperties。

所以现在的问题是:如果我不能绑定到值,我怎么能有一个依赖于 ViewModel 状态的 DataTemplateSelector?

0 投票
0 回答
222 浏览

windows-phone-7 - Windows Phone 枢轴和混合

我正在尝试Pivot Page在 Windows Phone 上设计一个,每个 Pivot Item 都会有一个不同的模板。我正在使用 MVVM Light,并且ViewModelLocator我想要一个属性 List<ViewModelBase>(或另一个具有我的 PivotItems ViewModels 的一些公共属性的 Base 类)并将其绑定到我的 Pivot 的 ItemsSource 属性。我也想使用一个DataTemplateSelector,所以我可以在每个 Pivot 的 DataTemplates 之间进行选择。我将它们存储在ResourceDictionary.

问题是由于某种原因,我在 Blend 中看不到我desing-data的,我的意思是我不能玩每个 PivotItem 并处理它的模板。

如果我要PivotItems手动添加,并将DataContext它们中的每一个设置为我的特定ViewModelBase subclass,那么它会起作用,而且我也不必使用,DataTemplateSelector因为我可以将 DataTemplate 从 Blend 手动设置为每个数据透视项。

我正在尝试做这一切,因为我想更改DataTemplate of the PivotHeader,但我无法绑定它,因为我无法选择 DataContext,所以如果我要使用 aList<ViewModelBase>与 ItemsSource 绑定,那么当我会尝试编辑 HeaderDataTemplate,HeaderTemplate 中的 DataContext 将已设置为 ViewModelBase(或我将用于派生每个 PivotItem 的 ViewModel 的任何 Base)。

我正在使用Visual Studio 2010 ExpressMicrosoft ExpressionBlend 4。

谢谢你。

0 投票
1 回答
503 浏览

wpf - 从 xaml 填充集合属性而无需指定属性元素

我有一个标记扩展

在 xaml 中使用它

问题是:是否可以避免“GUI:DataTemplates”元素编写一些 TypeConverter 或其他方式?

谢谢!

更新:我找到了MSDN 文章,它指出我的示例应该在没有“GUI:DataTemplates”的情况下工作得很好,但它没有:(互联网上的许多文章也一样。我做错了什么?

0 投票
1 回答
558 浏览

wpf - 使用 DataTemplateSelector 一次显示 UserControl

我有几个特定的​​用户控件来显示一些内容,例如简单的图像、WebControl,但还有两个复杂的特定自定义控件在画布上绘制。

现在我想使用 DataTemplateSelector 来处理不同的 UserControls。我实际上使用了这个http://tech.pro/tutorial/807/wpf-tutorial-how-to-use-a-datatemplateselector作为参考。

我更改了代码,以便表单在以下集合中动态加载 UserControls(根据文件扩展名):

与引用的唯一区别是现在我想通过只显示一个控件来前后导航到下一个控件。我应该使用哪个控件而不是 ListView?

我需要如何将它绑定到模板(等于上面的 ItemTemplateSelector)?WPF 对我来说仍然很新,我正在学习。