代码之家  ›  专栏  ›  技术社区  ›  Jon

如何显示DataGridComboBoxColumn的工具提示?

  •  1
  • Jon  · 技术社区  · 16 年前

    我想显示元素样式(非编辑模式)的工具提示 DataGridComboxColumn . 我一直没能想出一个好办法。在下面的示例中,我可以显示工具提示,也可以通过更改 显示 属性设置为“真”或“假”。我无法在不编辑时同时显示工具提示并允许启动编辑模式。当命中测试为真时,工具提示工作。当命中测试为假时,组合框将下拉。

    获取编辑和工具提示的最佳方法是什么?

    <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" };
        }
      }
    }
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   BryHaw    15 年前

    尝试使用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 >
    
    ...
    
    推荐文章