0

我有两个DataGrid: 问题 我需要做的是当鼠标在绿色区域上时,工具提示显示“lower_limit”,当鼠标在红色区域上时,工具提示显示“upper_limit”。

但重要的是,工具提示需要根据列 [operation_type] 和第二个网格中的相应值来确定要显示的值。

这可能吗?

非常感谢。

在此处发布 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 回答