更新时间:2022-10-21 16:12:23
你应该使用DataGridTemplateColumn而不是像这样的DataGridTextColumn:< DataGrid >
< DataGrid.Columns >
< DataGridTemplateColumn >
< DataGridTemplateColumn.CellEditingTemplate >
< DataTemplate >
< DataGrid / >
< / DataTemplate >
< / DataGridTemplateColumn.CellEditingTemplate >
< DataGridTemplateColumn.CellTemplate >
< DataTemplate >
< ; TextBlock / >
< / DataTemplate >
< / DataGridTemplateColumn.CellTemplate >
< / DataGridTemplateColumn >
< / DataGrid。列 >
< / DataGr id >
希望这会有帮助
want to include listbox in wpf datagrid control when datgrid click the cell, as like as outlook calander.
My Xaml Code
<DataGrid Name="Grid1" Height="550" Width="850" AutoGenerateColumns="False" CanUserResizeRows="False" CanUserDeleteRows="False" CanUserAddRows="False" AreRowDetailsFrozen="False" SelectionUnit="CellOrRowHeader" SelectedCellsChanged="Grid1_SelectedCellsChanged" CellEditEnding="Grid1_CellEditEnding" LoadingRow="Grid1_LoadingRow" SelectionMode="Extended">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type DataGridRow}},
Path=Item.Time}" FontSize="16" />
<TextBlock Text="00" Foreground="#9493CF" />
</StackPanel>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.Style>
<Style TargetType="DataGrid">
<Setter Property="AlternatingRowBackground" Value="LightYellow"/>
</Style>
</DataGrid.Style>
<DataGrid.Columns>
<DataGridTextColumn Header="Sunday" Binding="{Binding Sunday}" />
<DataGridTextColumn Header="Monday" Binding="{Binding Monday}" />
<DataGridTextColumn Header="Tuesday" Binding="{Binding Tuesday}" />
<DataGridTextColumn Header="Wednesday" Binding="{Binding Wednesday}" />
<DataGridTextColumn Header="Thursday" Binding="{Binding Thursday}" />
<DataGridTextColumn Header="Friday" Binding="{Binding Friday}" />
<DataGridTextColumn Header="Saturday" Binding="{Binding Saturday}" />
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu x:Name="LeftClickMenu">
<MenuItem Header="New Appointment" Click="MenuItem_Click"/>
<Separator/>
<MenuItem Header="Exit"/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
You should use DataGridTemplateColumn instead of a DataGridTextColumn like this :<DataGrid> <DataGrid.Columns> <DataGridTemplateColumn> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <DataGrid /> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid>
Hope this helps