簡體   English   中英

WPF DataGridComboBoxColumn不顯示上下文菜單嗎?

[英]WPF DataGridComboBoxColumn not showing the context menu?

我正在嘗試使DataGridComboBoxColumn具有靜態列表可供選擇:未開始,進行中,已完成

這是XAML中我所擁有的,盡管它可以正常運行,但在下拉列表中看不到這些選項:

           <DataGridComboBoxColumn  Header="Status" Width="auto"  IsReadOnly="False"  >
                <DataGridColumn.HeaderStyle>
                    <Style TargetType="DataGridColumnHeader">
                        <Setter Property="Background" Value="LightGoldenrodYellow" />
                        <Setter Property="BorderThickness" Value="2,2,0,2" />
                    </Style>

                </DataGridColumn.HeaderStyle>
                <ContextMenuService.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="Not Started" />
                        <MenuItem Header="In Progress"  />
                        <MenuItem Header="Completed" />  
                    </ContextMenu>
                </ContextMenuService.ContextMenu>
            </DataGridComboBoxColumn>

我不明白為什么這不能像其他DataGrid.ContextMenu那樣工作。 我覺得我在這里確實缺少一些簡單的東西。

您可以使用CompositeCollection:

<DataGridComboBoxColumn  Header="Status" Width="auto"  IsReadOnly="False"  SelectedItemBinding="{Binding Path=Value}">
                <DataGridColumn.HeaderStyle>
                    <Style TargetType="DataGridColumnHeader">
                        <Setter Property="Background" Value="LightGoldenrodYellow" />
                        <Setter Property="BorderThickness" Value="2,2,0,2" />
                    </Style>
                </DataGridColumn.HeaderStyle>
                <DataGridComboBoxColumn.ItemsSource>
                    <CompositeCollection>
                        <sys:String>Not Started</sys:String>
                        <sys:String>In Progress</sys:String>
                        <sys:String>Completed</sys:String>
                    </CompositeCollection>
                </DataGridComboBoxColumn.ItemsSource>
            </DataGridComboBoxColumn>

添加名稱空間:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

ContextMenuService提供用於顯示ContextMenu的系統實現

您想要的東西與已經擁有的東西相差不遠。 經過測試,對我有用:

<DataGridComboBoxColumn  Header="Status" Width="auto"  IsReadOnly="False"  >
    <DataGridColumn.HeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="Background" Value="LightGoldenrodYellow" />
            <Setter Property="BorderThickness" Value="2,2,0,2" />
        </Style>
    </DataGridColumn.HeaderStyle>
    <DataGridComboBoxColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="ContextMenu">
                <Setter.Value>
                    <ContextMenu>
                        <MenuItem Header="Not Started" />
                        <MenuItem Header="In Progress"  />
                        <MenuItem Header="Completed" />
                    </ContextMenu>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGridComboBoxColumn.CellStyle>
</DataGridComboBoxColumn>

當前設置為可用於單元格單擊,但可以輕松設置為“頁眉”或兩者都設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM