【问题标题】:How do you show a tooltip for a DataGridComboBoxColumn?如何显示 DataGridComboBoxColumn 的工具提示?
【发布时间】:2010-10-13 18:45:27
【问题描述】:

我想显示 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" };
    }
  }
}

【问题讨论】:

    标签: .net wpf datagrid tooltip datagridcomboboxcolumn


    【解决方案1】:

    尝试使用 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 >
    
    ...
    

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多