- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将命令绑定(bind)到复合集合中的菜单项时遇到问题。 MenuItem
是在 UserControl.Resources
中定义的 ContextMenu
的一部分。
问题是新标签的绑定(bind)不起作用。当我将 MenuItem 放在复合集合之外时,它将起作用。有什么想法吗?
<UserControl.Resources>
<ContextMenu x:Key="DataGridRowContextMenu">
<MenuItem Header=" Set label"/>
<MenuItem.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource labelsSelectSource}}" />
<MenuItem Header=" New label..."
Command="{Binding DataContext.NewLabel,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type UserControl}}}"/>
</CompositeCollection>
</MenuItem.ItemsSource>
</MenuItem>
<UserControl.Resources/>
最佳答案
发生这种情况是因为 ContextMenu
与其包含的父级不在同一个 visual tree
中,从而导致数据绑定(bind)问题。由于 ContextMenu
不在同一个可视化树中,ElementName
、RelativeSouce
(FindAncestor
) 等绑定(bind)不会工作。
你可以通过
来解决这个问题在 UserControl 的代码中:
NameScope.SetNameScope(DataGridRowContextMenu, NameScope.GetNameScope(this));
像这样使用 PlacementTarget
属性 -
<ContextMenu
x:Key="DataGridRowContextMenu">
DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
.
.
.
<MenuItem
Header=" New label..."
Command="{Binding DataContext.NewLabel}"/>
或者使用来自-
的其他解决方案关于WPF 在 CompositeCollection 中绑定(bind) MenuItem 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626114/
考虑代码: ObservableCollection cities = new ObservableCollection(); ObservableCollection states = new Ob
我想创建一个包含多个“静态”TabItem(在 XAML 中显式键入)和多个动态添加的 TabItem 的 TabControl。为了实现这一点,我尝试使用 CompositeCollection 作
我对使用这些类型时数据绑定(bind)的工作原理有点困惑。 我了解到您不能执行以下操作 public partial class Window1 : Window { publ
当我尝试将 GroupDescriptor 添加到我的 CompositeCollection 时,出现异常通知我 CompositeCollection 不支持分组。 我想知道是否有人找到了解决此限
我试过编写自定义 CompositeCollection和 CollectionContainer几次,我正要放弃。这就是我所拥有的。看起来很简单。 主页.xaml
我正在使用 MVVM 模式编写一个应用程序。我通过将 View 的 DataContext 属性设置为 ViewModel 的实例来向 View 提供数据。一般来说,我只是从那里使用 Binding
有没有办法在 CompositeCollection 当前位置发生变化时收到通知? 我需要通过 CollectionView 监控 CompositeCollection,欢迎任何想法。 最佳答案 您
我正在尝试生成用于在网络上浏览的服务器列表,以便生成如下所示的 TreeView : -Local Server - Endpoint 1 - Endpoint 2 -Remote - -
我在将命令绑定(bind)到复合集合中的菜单项时遇到问题。 MenuItem 是在 UserControl.Resources 中定义的 ContextMenu 的一部分。 问题是新标签的绑定(bin
我需要一个适用 View 模型的列表,并且正在考虑是尝试创建一个复合集合还是创建一个它们继承自的共享接口(interface)。一种方法是首选吗? 我假设复合集合维护一个独立于底层集合的项目索引,这样
我有一个绑定(bind)到动物集合的组合框。我从中选择了我最喜欢的动物。我需要绑定(bind)项目上方的静态空项目。我使用 CompositeCollection 声明它。当 ComboBox 被绑定
我正在使用 ComboBox 和 CompositeCollection,如下所示: 显
在 another question I recently asked ,我被告知使用 CompositeCollection 来访问 ListBox 的各种源。 该示例使用 XmlDataProvi
我正在使用 MVVM。 我有一个 CompositeCollection,包括 以“选择供应商”为内容的 ComboboxItem 有界的 CollectionContainer 当我在我的 View
这真的让我很震惊...... 上下文 我目前正在开发一个应用程序,我需要将多个集合(Receipt.Contact.Addresses、Receipt.Contact.MainAddress 通过转换
我没有获得正确的绑定(bind)语法来访问 DateTemplate 中 MyViewModel 的 Cats 和 Dogs 属性> 在其资源中定义了一个 CompositeCollection。 p
我是一名优秀的程序员,十分优秀!