【发布时间】:2019-02-12 18:53:45
【问题描述】:
我有一个带有菜单的 WPF 项目。其中一个菜单具有通过绑定到后面代码中的集合而动态生成的子项。这是此项目的 XAML:
<MenuItem Header="Open Files" Name="MiInsertOpen"
d:DataContext="{d:DesignInstance Type={x:Type core:DBInterface}}"
ItemsSource="{Binding InsertableDBs}">
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding DisplayName}" />
<Setter Property="ToolTip" Value="{Binding FilePath}" />
<Setter Property="Command" Value="{Binding DataContext.CmdInsert,
RelativeSource={RelativeSource FindAncestor,
AncestorType=MenuItem, AncestorLevel=2}}" />
<Setter Property="CommandParameter" Value="{Binding FilePath}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
这一切在运行时都可以正常工作,我得到了我所期望的,等等。每个子项的数据上下文是它所代表的正确数据库。
然而,在设计时,父 MenuItem 已正确设置其设计时数据上下文并识别“IsertableDBs”,但在样式中它抱怨找不到“DisplayName”和“DBInterface”类型的其他属性(父菜单的 DataContext 类型)。我如何告诉它该样式中的项目应该具有 DB 类型的 DataContext?
【问题讨论】:
标签: wpf design-time-data