0

私は 2 つの DataGrids を持っています: 質問 私がする必要があるのは、マウスが緑色の領域の上にあるとき、ToolTip は「lower_limit」を表示し、マウスが赤い領域の上にあるとき、ToolTip は「upper_limit」を表示します。

ただし、重要なことは、ToolTip は列 [operation_type] と 2 番目のグリッドの対応する値に基づいて、表示する値を決定する必要があるということです。

これは可能ですか?

どうもありがとう。

ここに xaml コードを投稿します。

<DataGrid Name="dgoperations"  AutoGenerateColumns="False" Background="#FFECE9D8" BorderBrush="#FFECE9D8" Grid.Row="1" MinRowHeight="30" IsReadOnly="True" Grid.ColumnSpan="2">
                            <DataGrid.Columns>
                                <DataGridTextColumn Binding="{Binding  Path=operation_sequence,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Header="operation_sequence" Width="sizetoheader" />
                                <DataGridTextColumn Binding="{Binding  Path=operation_name,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Header="operation_name" Width="sizetoheader" />
                                <DataGridTextColumn Binding="{Binding  Path=operation_type,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Header="operation_type" Width="sizetoheader" />
                                <DataGridTemplateColumn Header="parm1" >
                                    <DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBox Text="{Binding parm_1}" ToolTip="Somthins display here. Values depand on value in column[operation_type]" />
                                        </DataTemplate>
                                    </DataGridTemplateColumn.CellTemplate>
                                </DataGridTemplateColumn>
                            </DataGrid.Columns>
                        </DataGrid>
4

1 に答える 1

0

これにはIValueConverter実装を使用できます。慣れていない場合は、リンクにこれらの使用方法の基本的な例があります。基本的な考え方は、データ オブジェクトをコンバーターに渡すことです。コンバーターはロジックを実行し、正しいツールヒント テキストを返します。

実装は次のようになります。

XAML

<TextBox Text="{Binding parm_1}" 
    ToolTip="{Binding Converter={StaticResource MyTooltipConverter}}"
/>

リソース

<local:MyTooltipConverter x:Key="MyTooltipConverter" />

コード

public class Converter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        MyDataType dataRow = value as MyDataType;
        string tooltip;

        // set tooltip to the correct value based on the dataRow
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
于 2012-09-10T17:48:12.417 に答える