1

DataGridComboBoxColumnの要素スタイル (非編集モード) のツール ヒントを表示したいと考えています。これを行う良い方法を見つけることができませんでした。以下の例では、ツールチップを表示するか、 IsHitTestVisibleプロパティを true または false に変更してセルを編集できるようにします。編集していないときにツールチップを表示することも、編集モードを開始することもできませんでした。ヒット テストが 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" };
    }
  }
}
4

1 に答える 1

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 >

...
于 2011-08-21T07:26:32.177 に答える