我想为 DataGridComboBoxColumn 的元素样式(非编辑模式)显示工具提示。我无法找到一个很好的方法来做到这一点。在下面的示例中,我可以显示工具提示,也可以通过将 IsHitTestVisible 属性更改为true或false来允许对单元格进行编辑。我不能在不编辑时显示工具提示并允许启动编辑模式。当命中测试为真时,工具提示有效。当命中测试为假时,组合框将下拉。
获得编辑和工具提示的最佳方法是什么?
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid ItemsSource="{Binding}"
AutoGenerateColumns="False"
>
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Yo">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<TextBlock
Text="{TemplateBinding Text}"
IsHitTestVisible="False"
ToolTip="Yo"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfApplication2
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new List<string> { "Hello" };
}
}
}
答案 0 :(得分:0)
尝试使用DataGridTemplateColumn并将IsReadOnly =“false”添加到DataGrid中
...
<dg:DataGrid.Columns >
<dg:DataGridTemplateColumn >
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding something}">
<ToolTip Content="Write something here" />
</TextBlock>
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
<dg:DataGrid.Columns >
...