我有两个DataGrids: 我需要做的是当鼠标在绿色区域上方时,工具提示显示“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>
答案 0 :(得分: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();
}
}