我正在尝试创建一个具有静态列表的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的工作方式。我觉得我在这里错过了一些非常简单的东西。
答案 0 :(得分:1)
你可以使用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"
答案 1 :(得分:0)
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>
目前设置为单击单击格式,但可以轻松设置为标题或两者。