【问题标题】:WPF Design Time Data in Menu Subitem Style菜单子项样式中的 WPF 设计时数据
【发布时间】: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


    【解决方案1】:

    好的,在谷歌搜索后我找到了答案here。这似乎有效;我唯一要补充的是 d: 输入时 Intellisense 中的标签为空;只需手动输入“Style.DataContext”即可...

    【讨论】:

      猜你喜欢
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 2012-08-31
      相关资源
      最近更新 更多