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

wpf - 禁用 ListView 选择和悬停

通常我可以像这个线程建议的那样禁用 ListView 选择- 或者在您设置 ItemContainerStyle 的地方进行类似的操作。

但是我有这个 ListView 是这样定义的:

如果我尝试指定 ItemContainerStyle - 列表中的数据就会消失。

给出上面的 ListView,我将如何继续删除选择?

0 投票
1 回答
57 浏览

c# - WPF 无法在 ComboBox 中选择启用的项目

我正在尝试创建一个组合框,其中启用了选择列表中的某些项目而禁用了其他项目。在视觉上,我能够做到这一点,但是当我选择一个视觉上启用的项目时,什么也没有发生。

XAML:

在此处输入图像描述

当我单击上面的选定项目时,什么也没有发生 - EndpointModel.SelectMediaFormat 没有执行。

删除ComboBox.ItemTemplate节的那一刻,我可以成功选择任何启用的项目,即

在此处输入图像描述

如您所见,我正在显示对象引用。我不知道如何用实际名称替换上面的内容。

正如您所想象的那样,我在 WPF 还是很新的 :-)

任何建议,将不胜感激。

0 投票
1 回答
212 浏览

.net - WPF 更改 ItemContainerStyle 但保留引用的基本样式

我在 ResourceDictionaries 中有一些来自 3-rd 方 dll (MaterialDesign) 的样式

由于这些样式被添加到我的 UserControl 的资源字典中,我有一个 TreeView,它获得了很酷的动画效果。

稍后我计划实现某种方式,以便用户可以在三个字典中的三种样式之间切换。欢迎提出如何最好地实施的建议。

我有一个 TreeView,我需要更改它的行为,以便某些项(或节点可能更正确)应该始终根据绑定到 VM 属性来扩展其子项。此外,当我在树视图中选择一个项目时,该项目的子树应该会自动展开。当我离开该项目时,子树应该折叠,除非它设置为始终展开。我已经设法通过编辑 TreeView 的 ItemContainerStyle 的副本来完成所有这些工作。

问题和我的问题,一旦我定义/编辑我自己的 ItemContainerStyle 副本,我就会丢失所有动画效果,因为它会覆盖 MaterialDesign 资源中的默认设置样式。 如何确保我的 ItemContainerStyle 也保留 MaterialDesign 引用的 ResourceDictionary(ies) 中的动画和样式?

0 投票
1 回答
182 浏览

wpf - ListView 的 ItemContainerStyle 阻止 GridView 上的列项绑定

为什么ItemContainerStyle下面详述)的实现会导致单个数据列绑定在其他工作ListView/上失败GridView

这是失败的视觉结果,其中显示了 3 行中的总项目,但不显示单个列项目:

在此处输入图像描述

没有覆盖的实现ItemContainerStyle

在此处输入图像描述


实际目标在回答问题之前,请考虑一下我的最终目标是替代解决方法。我想要一个GridView类似的结构,其中每一都有一个阴影;最好显示在所选项目上/悬停操作上以使行弹出。正如上面的失败示例所示


代码


要重现,您将需要

Xaml 中定义的静态资源数据

模型命名空间中的People.cs

0 投票
1 回答
54 浏览

wpf - ContextMenu - 使用 ItemContainerStyle 时的奇怪行为

我的ContextMenu. ItemsSource是 a List<Layer> Layers;,其中类Layer覆盖ToString()以返回Name属性。

如果我不使用任何ItemContainerStyle上下文菜单,一切正常 - 它获取Layer对象并显示该ToString()对象的,就像它应该的那样。当我添加 时ItemContainerStyle,它显示一个空字符串。

这是 XAML:

我是这样开火的:

是不是因为某种原因这个绑定以某种方式被破坏了?

顺便说一句,如果我将图层列表更改为 aList<string>并且只是将图层的名称提供给它,它可以与ItemContainerStyle.

我错过了什么?

0 投票
1 回答
23 浏览

c# - 通过加载自定义样式清除 ItemContainerStyle

因此,我在使用自定义 treeviewitem:s 制作自定义树视图时遇到了这个问题,ItemContainerStyle通过从自定义样式加载样式来清除这些问题。

它像这样工作。我有基于 TreeViewItem 的自定义 MyTreeViewItem。

正如你所看到的,我在这里只有一个简单的颜色,以确保它自己的样式有效。除非我在后面的代码中这样做,否则这永远不会加载。

编辑:我知道不需要将诸如着色之类的东西放在这里,因为这里本来打算有一个模板。自从注意到真正起作用以来,我只是把它剥离到骨头上,以确保我放了一些超级简单的东西,我知道它应该可以工作,以防万一它是因为它本身的模板。

这很有效。已经将它与其他控件一起使用过几次,以便为需要加载的控件自定义样式,而不必费心一遍又一遍地“重新设计”所有内容。

我怎么会遇到这个问题。这就是ItemContainerStyle这种自定义样式控制器的使用时间。

正如你在 ui:MyTreeView.ItemContainerStyle上面看到的,一旦样式被加载,就会被完全忽略,this.Style = Resources["MyTreeViewItemStyle"] as Style;MyTreeViewItem_Loaded. 这意味着这些 Setter、EventSetter 和 Triggers 根本不会触发,因为它们仍然需要能够作为附加规则添加。

如何解决这个问题,以便可以加载自定义控件中的预定义样式,并且通过使用此控件,您仍然可以像上面那样连接独特的规则,而无需预定义的否决它们?

0 投票
1 回答
40 浏览

wpf - 当 ItemsControl.ItemContainerStyle 与 ItemsControl.ItemTemplateSelector 一起指定时,后者被忽略

我有以下代码 - 只有 3 个类:

主窗口.xaml

主窗口.xaml.cs

模板选择器

使用当前代码,DropdownItemTemplate 被忽略,我们没有得到

组合框项的 TemplateSelector 中的方法。

如果我ItemContainerStyle="{StaticResource ComboBoxItemStyle}" 从 ComboBox 中删除 ,则一切正常。

我想知道为什么?谢谢!