Данные времени проектирования WPF в стиле подэлемента меню - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть проект 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 Ответ

0 голосов
/ 13 февраля 2019

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

...