我有DataGrid,其中一个DataGrid列如下所示
<DataGridTextColumn Header="Value"
Binding="{Binding Value, Converter={StaticResource BooleanToYesNoConverter}}"
x:Name="_col2"
IsReadOnly="True"
CanUserSort="False"
Width="*">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding Value, Converter={StaticResource BooleanToYesNoConverter}}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>问题是我被迫两次使用BooleanToYesNoConverter转换器。这意味着Convert方法的BooleanToYesNoConverter将被调用两次。因此,我想优化我的代码。并希望将ToolTip属性的值直接绑定到单元格的值。
我尝试了使用ElementName-s的方法。但是,我不知道应该在绑定的Path属性中指定什么。
<DataGridTextColumn Header="Value"
Binding="{Binding Value, Converter={StaticResource BooleanToYesNoConverter}}"
x:Name="_col2"
IsReadOnly="True"
CanUserSort="False"
Width="*">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding ElementName=_col2, Path=???}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>我尝试使用DataGridTemplateColumn而不是DataGridTextColumn,但它也不起作用。
<DataGridTemplateColumn CanUserSort="False"
Header="Значение"
Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value, Converter={StaticResource BooleanToYesNoConverter}}"
Name="_textBlock"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding RelativeSource ElementName=_textBlock, Path=Text}" />
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>我怎么才能解决我的任务。有可能吗?
发布于 2014-12-11 10:19:13
只需将ToolTip设置为DataGridCell的DataContext,如下所示:
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding}" />
</Style>
</DataGridTextColumn.CellStyle>如果您没有得到所需的内容,那么也可以指定转换器:
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding Converter={StaticResource BooleanToYesNoConverter}}" />
</Style>
</DataGridTextColumn.CellStyle>https://stackoverflow.com/questions/27418403
复制相似问题