Member 13048699 Ответов: 1

Как создать контекстное меню, содержащее пункты меню в gridviewcolumn.celltemplate?


У меня есть две кнопки внутри разных столбцов в представлении таблицы данных в приложении WPF. Это представление таблицы данных будет загружаться из БД. В то же время в каждой строке будет присутствовать пункт выпадающего меню Location. У меня есть пять столбцов, и изображение показывает содержимое, присутствующее в последних двух столбцах моего приложения wpf.

Подобный этому

Как мы видим на изображении, стрелка для выпадающего списка присутствует в этом месте. Но когда я нажимаю его, я не вижу подменю, как показано в приведенном ниже коде xaml.
<local:CustomListView.View>
    <GridView AllowsColumnReorder="False">
        <GridViewColumn Header="Car" Width="Auto" 
                        DisplayMemberBinding="{Binding Car}" />
        <GridViewColumn Header="House" Width="Auto" 
                        DisplayMemberBinding="{Binding House}" />
        <GridViewColumn Header="" Width="60">
            <GridViewColumn.CellTemplate>
                <DataTemplate>
                    <MenuItem Header="Location" ToolTip="Click to see info">
                        <MenuItem Header="Start" Click="info_Click" 
                                  ToolTip="Shows the start route"/>
                        <MenuItem Header="Final" Click="info_Click" 
                                  ToolTip="Show the final route"/>
                    </MenuItem>
                </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn> 
    </GridView>
</local:CustomListView.View>
По какой-то причине я не могу видеть начало и конец подпунктов. Я очень новичок в этом деле и был бы признателен за любую помощь.

Благодарить всех.

Я не могу понять, как добавить следующий раздел кода, показанный ниже, чтобы иметь пункт меню. Возможно ли это или есть какой-то другой подход?
<local:CustomListView.ContextMenu>
    <ContextMenu>    
    //I want to be able to place the MenuItem in here
    </ContextMenu>
</local:CustomListView.ContextMenu>
Я хочу добавить что-то вроде этого в колонку GridViewColumn.Секция CellTemplate.

Может ли кто-нибудь подсказать мне, как это сделать? Я потратил несколько часов, но безуспешно.

Что я уже пробовал:

Разделы кода, показанные выше, - это то, что я пробовал.

CHill60

Вы должны знать, что здесь вы не можете вставлять изображения в вопросы. Я не думаю, что вам нужен образ, хотя вы ясно объяснили проблему.

1 Ответов

Рейтинг:
5

Gerry Schmitz

Вы не совсем понимаете, "куда" должно идти это контекстное меню.

Сетка? Заголовок? Клетка?

В любом случае, вы не "шаблон меню". В "ячейке" есть что-то (например, текстовый блок), к которому прикреплено меню. В вашем случае вы даже не привязываете колонку ни к чему.

И бросьте "обычную" datagrid, пока вы не сможете получить "обычную" datagrid, чтобы сделать то, что вы хотите re: меню.

Контекстное меню WPF - полный учебник по WPF[^]