Данные времени проектирования WPF в стиле подэлемента меню

У меня есть проект 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 введите для родительского меню). Как мне сказать, что элементы в этом стиле должны иметь DataContext типа DB?

1 ответ

Хорошо, после поиска в Google, я нашел ответ здесь. Кажется, это работает; единственное, что я должен добавить, - это то, что тег d: в пустом месте появляется в Intellisense при его вводе; просто введите "Style.DataContext" вручную, и он работает...

Другие вопросы по тегам