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

xaml - UWP ListView,第一个和最后一个项目的不同项目模板

我试图构建 DataTemplateSelector 为我的 ListView 第一个和最后一个项目选择不同的项目模板。

在我的 DataTemplateSelector 中,我尝试查找父 ListView 并基于该检查项索引并选择正确的数据模板。

问题是我无法在 SelectTemplateCore() DependencyObject 容器对象的父级中获取父级 ListView 为空。

我应该如何根据项目位置选择不同的模板?

我的数据模板选择器:

xaml 中的列表视图:

0 投票
1 回答
295 浏览

wpf - 使用 DataTemplateSelector 覆盖项目样式模板

我在 ListViewItem 上有一个设置 Theme 属性的 Style

但是,在我使用 ListView 的一种情况下,我想使用 DataTemplateSelector 来确定要使用的模板

它是这样应用的

但是,似乎项目上的样式会接管,并且该样式将应用于 ListView 中的所有项目。我发现这个问题有一个类似的问题,但是,该解决方案根本不使用 Item 样式上的模板。我需要保持这一点。

我通过在 ListView 中重新设置 ListViewItems 的样式来使用 ContentTemplateSelector

但是,将使用其他样式的模板。如果我尝试使模板无效,那么什么都不会出现!

有没有办法可以替换给定 ListView 的 ListViewItems 上的模板,同时保留我的其余样式?

0 投票
3 回答
1237 浏览

xaml - UWP - GridView:如何在最后一项之后添加“添加”按钮?

我使用 GridView 来显示照片,并搜索一种优雅的方式来允许用户向表单添加新项目。

  • 表单包含很多字段:它显示在一个 Pivot 中,其中每个 PivotItem 代表表单的一个类别。
  • 某些类别包含一个或多个子项:它们通过主从页面显示。

在这个页面中,我需要显示照片列表:由于照片代表表单的“子子项”,因此我不会通过 CommandBar 管理添加新照片。但我想在包含照片的 GridView 的最后一项之后使用“添加”按钮。

此时我只找到了部分有效的解决方案: 在此处输入图像描述

这是 XAML:

当我使用 StackPanel 时,如果我显示 3 张照片,则添加按钮不再可见......

=> 有没有更好的方法来做到这一点?还是您看到了替代方案?我正在寻找通过 DataTemplateSelector 执行此操作,但这需要我创建一个“假”对象来显示添加按钮...

0 投票
1 回答
53 浏览

xamarin - 如果我使用 DataTemplateSelector,在哪里设置自定义单元格与客户渲染器的绑定?

我有一个 DataTemplateSelector 在两个不同的单元格之间进行选择。在 Android 上,此模板选择定义为 Android xml 文件的单元格。我可以确认模板选择器正在工作,因为我显示了两个不同的色环,并且颜色正确。但是我的数据没有被绑定,我不知道为什么。我想我没有在某处设置绑定,但我不确定在哪里/如何做到这一点。

这是我的页面,其中包含带有 DataTemplateSelector 的 ListView。我在此处设置了 ItemsSource,但我从未为列表项的不同部分设置绑定。那是我不知道该怎么办的地方。

代码隐藏:

数据模板选择器

以及我的一个自定义 ViewCell 的示例。我认为这是我错的地方,但我不知道为什么。我制作了属性,但我不知道如何正确设置它们。

谢谢您的帮助 :)

0 投票
0 回答
237 浏览

data-binding - 如何从数据模板中的图像列表中绑定图像?

我创建了一个模板选择器,我正在使用 ffimage 来缓存图像。绑定到 listView 的模型有一个我需要绑定到图像源的图像 url 列表。我将图像绑定为

有时这可行,有时错误作为 TargetInvocationException 出现,我无法找出这个异常发生在哪里,但是当我删除绑定时,错误就消失了。

0 投票
1 回答
179 浏览

c# - 如何使网格在 DataTemplateSelector 中可见

我有一个包含 2 个网格的 ItemsControl 的 DataTemplate。第二个网格是折叠的,当我单击 ItemsControl 中的一个项目时,我想让它可见。

这是 XAML:

这是 ceControl 是 DataTemplateSelector 和 MagazineSlotTemplate 是使用上述模板中的静态资源的 DataTemplate 背后的代码。

我可以在后面的代码中看到第二个网格,但是当我将可见性设置为可见时变得可见但属性 IsVisisble 为假,因此我看不到网格

0 投票
1 回答
1318 浏览

wpf - 对两个 DataGridTemplateColumns 中同一对象的两个不同属性使用相同的 DataTemplate

我在资源中有两个数据模板和一个 DataTemplateSelector 可供选择:

这是选择器的代码隐藏:

只要我将 MyTemplateSelector 用于一个 DataColumn(例如 Name1),它就可以正常工作。但我的 DataGrid 有两个模板列要绑定到两个字符串字段:Name1 和 Name2

我的问题是:如何在绑定中设置正确的路径(名称 1 或名称 2)(而不是名称 1 或名称 2,见上文)。谢谢你。

0 投票
1 回答
888 浏览

wpf - 没有代码隐藏的 DataTemplateSelector

是否可以以DataTemplateSelector仅 XAML 的方式使用,即没有代码隐藏?

0 投票
2 回答
1358 浏览

c# - 当 DataTemplate 从 DataTemplateSelector 显式返回时,为什么 DataTemplate 不能绑定到接口?

我创建了一个 DataTemplateSelector,它使用一组已知接口进行了初始化。如果传入选择器的项目实现了这些接口之一,则返回关联的数据模板。

首先,这是有问题的 ICategory 接口......

这是基于基类或接口匹配的 DataTemplateSelector,而不仅仅是特定的具体类...

以下是它在资源中的设置方式以及相应的 HierarchicalDataTemplate 与 DataType = ICategory ...

最后,这是一个使用它的 TreeView...

我已经对其进行了调试,并且可以确认正确的数据模板正按预期返回到 TreeView,这既是单步执行代码,也是因为TreeView 正在按照 HierarchicalDataTemplate 上的 ItemSource 绑定正确加载子类别。所有这些都按预期工作。

不起作用的是模板本身的内容。如您所见,模板只是应该显示类别的名称,但它只是呈现对象原始,就好像它直接放置在没有任何模板的 ContentPresenter 中一样。您在 UI 中看到的只是 ToString 的结果。模板的内容被完全忽略。

我唯一能想到的是它不起作用,因为我正在使用 DataType 的接口,但同样,儿童 ItemsSource 的绑定确实有效,所以我有点难过。

注意:作为测试,我根据具体类型(即类别而不仅仅是 ICategory)创建了第二个 DataTemplate,当我这样做时,它按预期工作。问题是具体类型位于 UI 不应引用的程序集中。这就是我们首先使用接口的全部原因。

*注意:我还尝试通过使用 Key 而不是设置 DataType 属性来更改查找模板的方式。在那种情况下,就像之前一样,选择器仍然会找到相同的资源,但它仍然不起作用!

然而具有讽刺意味的是,如果我使用相同的键直接通过 StaticResource 绑定设置 TreeView 的 ItemTemplate,那么它确实有效,这意味着它仅在我从选择器返回模板时不起作用,并且与是否DataType 无关设置与否。*

0 投票
1 回答
1443 浏览

xamarin.ios - Xamarin 使用 DataTemplate 形成 UICollectionView

我正在尝试在 Xamarin Forms 中创建一个自定义视图,该视图转换为 IOS 中的 UICollectionView。

这第一件事做起来相当简单:

看法:

渲染器:

现在我想为这个 CollectionView 提供 DataTemplates(来自 DataTemplateSelector)。但我找不到注册课程的方法:

您可以从模板中执行以下操作:

获取 UI 元素。

但是我怎样才能在collectionView中注册它以便在CollectionSource中出列

例如: