问题标签 [itemcontainerstyle]

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

silverlight-4.0 - DataTemplate 与 ItemContainerStyle

我已经看到了一些其他 Silverlight 'vs' 的问题,但找不到这个特定比赛的任何问题。

我正在尝试定义绑定到 a 的对象的ListBox显示方式。我已经定义了 a DataTemplate,但我真的不确定这应该在哪里结束以及ItemContainerStyle应该从哪里开始。

问题 1: 是否ItemContainerStyle只是一个包装器,DataTemplate以便可以将通用项目样式应用于不同的数据布局?

问题 1a:如果是这样,如果不需要共同的项目样式,是否ItemContainerStyle甚至需要或可以在 ? 中定义所有布局和样式DataTemplate

问题 1b:如果不是,那是什么?

目前ListBox是这样的:

我的 XAMLDataTemplate是这样的:

谢谢。

0 投票
3 回答
2766 浏览

.net - 无法使用 ItemContainerStyle 为菜单项设置图标

我正在尝试像这样设置我的菜单项的图标-

但仅显示最后一个菜单项的图标,而不是前两个。

在此处输入图像描述

示例应用程序 - http://weblogs.asp.net/blogs/akjoshi/Samples/WPFMenuItemBugSample.zip

任何人都可以提供这种行为的原因和可能的解决方案/解决方法。

0 投票
1 回答
4603 浏览

wpf - ItemContainerStyle 块 ItemContainerStyleSelector

我有代码:

ItemContainerStyleSelector="{StaticResource DeviceListItemStyleSelector}"用来更改每个列表框项目的背景颜色(例如黑色或银色,请参阅 - http://msdn.microsoft.com/en-us/library/system.windows.controls.styleselector.aspx)。它有效。但是,如果我添加ItemContainerStyle="{StaticResource DeviceListItemStyle}"以创建一些触发器等,DeviceListItemStyleDeviceListItemStyleSelector不起作用。请帮帮我!)

0 投票
2 回答
2231 浏览

wpf - 如何在 ItemContainerStyle 中使用 EventToCommand?

这就是它现在的工作方式。如果我想将每个 ListBoxItem 的 DoubleClick 事件绑定到一个 RelayCommand 应该怎么做?

0 投票
1 回答
751 浏览

wpf - 为 List ItemsSource 创建自定义 ItemContainerStyle

我正在尝试为 ListView 创建自定义 ItemContainerStyle 以便显示的文本是可选的。我正在寻找将 ItemsSource 设置为List<string>. 如果我绑定到List<Person>(with property Name) 我可以做

如何为 a 指定绑定List<T>

0 投票
1 回答
2121 浏览

wpf - 应用 ItemContainerStyle 时 ListView 失去 GridView 显示

我有一个 WPF 应用程序,我在其中设置了几个组件的样式,使其看起来更像默认的 Windows 7 样式。现在我想对 ListView 做同样的事情,因为默认样式(即使在 Windows 7 上)看起来不太相似。

ListView 的 View 设置为带有一些 GridViewColumns 的 GridView。未应用任何样式的 ListView 的 XAML 如下所示:

它在 Windows 7 上看起来像这样,您可以看到颜色略有错误: 1 http://www.nickthissen.nl/Images/Persistent/tmp3DCB.png

所以我决定对 ListView 的 ItemContainerStyle 应用自定义样式。除了用 ListViewItem 替换 ListBoxItem 之外,样式几乎与我用于 List Box的样式完全相同:

将此样式应用于 ListView 的 ItemContainerStyle 属性后,ListView 如下所示: 2 http://www.nickthissen.nl/Images/Persistent/tmpCCB2.png

如您所见,颜色现在好多了,但它完全失去了它的 GridView 显示样式,而是完全忽略了列,只是插入了对象的 ToString 表示(我没有覆盖它,所以它返回了完整的类型名称)。

我不明白为什么会发生这种情况,除了删除 ItemContainerStyle 之外,我没有做任何事情来摆脱它。我的风格一定有问题,但我找不到问题...

谁能看到我做错了什么以及如何恢复我的 GridView 样式?谢谢!

0 投票
2 回答
661 浏览

wpf - 为 listboxitem 模板化绑定设置值

我有这种风格:

我的问题是我不知道在使用我的样式时要在 ListBox 上设置哪个属性,以便它的 ListBoxItems 的边框最终具有所需的边框画笔。我也想让这项工作适用于我风格的其他边框画笔。

我希望能够有两个具有相同样式但边框颜色不同的列表框。我有一个列表框:

更新..我试过这个:

但是,我得到:错误 8 TargetName 属性不能在样式设置器上设置。

0 投票
3 回答
8505 浏览

binding - 如何在 WinRT 中的 ItemContainerStyle 中进行绑定?

我正在尝试将集合绑定到 ItemsControl,将 Canvas 作为项目面板,并将每个项目的 Canvas.Left 和 Top 绑定到项目对象的属性。基本上,我正在尝试重新创建我在博客上的这篇文章中描述的二维数据绑定,但这次是在 WinRT 而不是 WPF 中。

由于 ItemsControl 将您的 ItemTemplate 内容包装在另一个 UI 元素(在 WinRT 的情况下为 ContentPresenter)中,并且这些包装器/容器元素直接放置在项目面板内,因此必须在这些容器上设置 Left 和 Top;您不能只在 DataTemplate 中设置它们。在 WPF 中,使用 ItemContainerStyle 中的绑定很容易做到这一点,例如:

但是当我在 WinRT/XAML 项目中尝试同样的事情时,我什么也得不到。甚至没有绑定错误。如果我硬编码一个值,它会起作用;但如果我使用绑定,该属性将保持其默认值(零),并且“输出”窗口中不会显示任何绑定错误。

我已经验证 ContentPresenters 确实具有正确的 DataContext(即集合项,而不是集合本身或其他时髦的东西),因此您会认为这些绑定可以正常工作。但他们似乎甚至没有得到评估。如果我在其他任何地方放置了错误的绑定并运行调试构建,我会在调试器的输出窗口中看到绑定错误;但是如果我在我的 ItemContainerStyle 中引用了一个无意义的属性,则不会显示绑定错误。

这是一个更完整的示例,(据我所知)在 WPF 中应该可以正常工作,但是在 WinRT 中将所有内容留在原点:

我已经尝试了一些更奇特的选项Binding——特别是RelativeSource。当我使用RelativeSource TemplatedParent时,无所事事的行为没有改变。但是,当我使用时RelativeSource Self,我确实收到了一个绑定错误,说该属性在 type 上不存在Setter!这Self有点太字面意思了,那里。

我也玩过 . TemplateBinding,但我从来没有真正理解过它应该用来做什么,我得到的只是一些难以理解的 COM 错误(欢迎使用 WinRT,这是一个巨大的技术倒退)。

我怎样才能(a)使绑定正常工作(是否有其他选项Binding可以用来强制它正常工作?),或者(b)以其他方式允许我中的项目基于数据绑定ItemsContainer任意定位到Canvas集合项目的属性?

0 投票
2 回答
740 浏览

c# - 使用 Canvas 作为 ItemsPanelTemplate 和 Binding Canvas.Top 不起作用

首先,我正在使用 C# 和 XAML 编写适用于 Windows 8 的 Windows Store 应用程序。我正在使用 aGridView来显示对象的分组集合。每个组都显示为一个单独的列,其中显示了相关的项目。

这很好用,但我希望ItemsPanel每列的都是一个Canvas面板。

现在我Canvas.Top在 xaml 中设置了一个静态数字。这像预期的那样工作。

但是,如果我使用数据绑定,它就不起作用。

绑定不适用于使用 Visual Studio 2012 进行 Windows 8 应用商店应用开发中的样式和设置器?我该如何解决这个问题,我可以从属性中为每个项目动态设置 Canvas.Top?

0 投票
1 回答
2114 浏览

wpf - WPF ComboBox:如何使用具有绑定的通用 ItemContainerStyle

我想为我的 ComboBoxItem 内容使用通用样式,并将文本内容绑定到我的基础类上的不同属性。所以这是我能想到的最好的方法,但绑定是硬编码的。因此,对于使用此 ItemContainerStyle 绑定到组合框的每个类,我都必须实现“MainText”和“SubText”属性。

问题是,有没有办法对绑定进行软编码,以便从组合框引用的样式我可以指定使用底层类的哪些字符串属性。

并使用这种风格......

进一步 dowhilefor 的回答(非常感谢 - WPF 很棒,但肯定是一次发现之旅)

我最初使用数据模板来定义单元格外观 - 然后想使用基于组合框的样式和定义的控件模板,我可以在其中指定 onmouseover 触发器。即这些是为了改变背景颜色等。

Butj a) 我无法删除上面模板的边框部分 - 触发器通过 targettype="BB" 绑定到它。所以我有点想将触发器绑定到容器,这样数据模板就会从模板绑定中获取背景,但不知道如何将其插入。

b)我意识到,即使我注释掉触发器上的 BB 特定绑定只是为了让它运行——组合框也找不到并使用我定义的 DataTemplate。似乎在我的 comboboxitemstyle 中定义 controltemplate 会阻止它拾取数据模板。

我希望我在这里说得通 - 底线是我只想要一种样式,我可以使用触发器来设置我的 cobobox 项目的背景颜色。它不应该知道数据是什么 - 即能够插入将(模板?)绑定到此背景颜色的数据模板。

非常感谢您的快速响应。

顺便说一句,我将 ItemContainerStyle 与 ItemTemplate 结合使用,因此我可以在下拉列表中使用与组合框列表中显示的内容不同的表示形式