【发布时间】:2015-05-07 14:35:33
【问题描述】:
我对绑定有点迷茫。 在过去的一个小时里我尝试了很多东西,我无法一一列举。我对 DataTemplate 中的 contextMenu 有疑问。
解释一下:我有一个UserControl。它的 dataContext 就是它自己。在这个UserControl 中,我有一个ItemsControl 来表示一个超链接列表。我的ItemsControl itemsSource 已绑定(它由对象元素组成)。
我重新定义了ItemsControl.ItemTemplate。在内部,我创建了一个 HyperLink,以TextBlock 作为子级以使其工作,并在此TextBlock 上,通过执行以下操作设置ContextMenu。
<TextBlock.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Enregistrer la pièce jointe" Foreground="Black">
<MenuItem Header="Dans le dossier patient" Command="{Binding DataContext.SaveAttachmentIntPatientFolderCommand, RelativeSource={RelativeSource AncestorType=UserControl}}" CommandParameter="{Binding FilePath}" Foreground="Black" />
<MenuItem Header="Enregistrer sous ..." Command="{Binding DataContext.SaveAttachmentAsCommand}" CommandParameter="{Binding FilePath}" Foreground="Black" />
</MenuItem>
</ContextMenu>
</TextBlock.ContextMenu>
所以我有
UserControl --> ItemsControl --> ItemTemplate --> HyperLink --> TextBlock --> ContextMenu --> ContextMenuItem
我知道我的第一个相对来源不起作用,我遇到了绑定错误。我想要的是绑定我的 UserContorl 数据上下文,它有这些命令。
我该如何继续?
谢谢
【问题讨论】: