我正在使用WPF DataGrid并希望创建自己的CellEditingTemplate。我想复制类似DatePicker的东西,它在编辑时不会替换单元格的全部内容,而只是浮动 像这样:http://i3.windowsclient.net/SiteFiles/1000/wpfsp1/wpf-35sp1-toolkit/107-2.png?cdn_id={b4d0570c}
我试过了:
<tk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Popup AllowDrop="False" StaysOpen="False" >
<Canvas Width="100" Height="100" Background="Aqua"/>
</Popup>
</DataTemplate>
</tk:DataGridTemplateColumn.CellEditingTemplate>
但这似乎没有办法。我想知道如何制作可用于细胞编辑模板的自己的控制。
谢谢, 劳尔
答案:
<tk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock x:Name="PART_TextBox"
Grid.Row="0" Grid.Column="0"
Text="{Binding User.Name}" />
<Popup x:Name="PART_Popup"
PlacementTarget="{Binding ElementName=PART_TextBox}"
Placement="Bottom"
StaysOpen="True"
AllowsTransparency="True"
IsOpen="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox Grid.Column="0" Grid.Row="0" Text="(Enter a last, first)"/>
<Button Grid.Column="1" Grid.Row="0" Content="Search" />
<TreeView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Height="200" Width="200" />
</Grid>
</Popup>
</Grid>
</DataTemplate>
</tk:DataGridTemplateColumn.CellEditingTemplate>
答案 0 :(得分:2)
Popup.IsOpen
属性的默认值为False
,因此至少有一个原因是您没有看到弹出窗口。也许这会解决你的问题:
<DataTemplate>
<Popup AllowDrop="False" StaysOpen="False" IsOpen="True">
<Canvas Width="100" Height="100" Background="Aqua"/>
</Popup>
</DataTemplate>
答案 1 :(得分:0)
在CellTemplate中放置一个按钮,该按钮将响应您的点击事件,在点击处理程序中,您可以显示一些弹出窗口,从中选择您的值。