Wpf 如何从模板外部但在同一窗口中的资源字典绑定到控件模板内部的元素?
我面临的问题是XAML文件太大。我想把东西分成资源 菜单项的Wpf 如何从模板外部但在同一窗口中的资源字典绑定到控件模板内部的元素?,wpf,xaml,data-binding,controltemplate,xaml-resources,Wpf,Xaml,Data Binding,Controltemplate,Xaml Resources,我面临的问题是XAML文件太大。我想把东西分成资源 菜单项的标题呈现时没有文本,它既不使用x:Reference和Binding.Source也不使用Binding.ElementName 如果我给标题属性一个低于本地值的值,它就会工作。我需要此资源字典中可用的上下文菜单,因为我在许多其他大型资源(特别是同一资源字典中的大型DataTemplates)中使用它 如果我把这个ContextMenu,以及所有使用它的资源从窗口.resources放入ControlTemplate.resources
标题
呈现时没有文本,它既不使用x:Reference
和Binding.Source
也不使用Binding.ElementName
如果我给标题属性一个低于本地值的值,它就会工作。我需要此资源字典中可用的上下文菜单,因为我在许多其他大型资源(特别是同一资源字典中的大型DataTemplate
s)中使用它
如果我把这个ContextMenu
,以及所有使用它的资源从窗口.resources
放入ControlTemplate.resources
,一切都正常,但我想把它们分开,以便更好地组织,因为它们很大
我在Stack Overflow中搜索了重复的问题,但没有找到与我的情况类似的问题。我考虑了一会儿,没有找到一种技术可以帮助我。(我只阅读了大约80%的Pro WPF 4.5。)
XAML
(除了自动生成的代码之外,后面没有其他代码)
钮扣
实际值:第一个/根网格的上下文菜单
有一个菜单项
,该菜单项有一个空的标题
。可以通过右键单击该网格
进行检查
应为:应将标题设置为“Test”
截图
多谢各位
更新1
我实际项目中的ContextMenu开始时如下所示:
<ContextMenu x:Key="MyContextMenu">
<MenuItem Click="ApplyFilters_Click"
Visibility="{Binding ElementName=MyListView,
Path=SelectedItems.Count,
Converter={StaticResource MultipleSelectedToVisibleConv}}"
Header="_Apply filters">
</MenuItem>
我在问题中添加了更多详细信息。谢谢。MyListView
与ContextMenu
的关系如何?除非您引用的元素位于同一名称范围内,否则您不能使用ElementName
。我在问题中添加了更多信息。谢谢。“右键单击任何元素”?那么如何将ContextMenu
属性设置为MyContextMenu
以及在哪个元素上执行此操作?我发布了另一个更新。谢谢。
<DataTemplate x:Key="LargeIconsWithViewboxTemplate">
<Viewbox>
<Grid Tag="{Binding Path=MyFilter}"
ContextMenu="{StaticResource MyContextMenu}"
Width="84" Height="60" ToolTip="{Binding Path=DisplayString}">
[...]