Bindung DataGridCell ToolTip-Eigenschaft auf den Wert der DataGridCell
Habe ich DataGrid
und einer der DataGrid
Spalten sieht wie folgt aus
<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>
Das problem ist, dass ich gezwungen zu verwenden BooleanToYesNoConverter
converter zweimal. Es bedeutet, dass Convert
Methode der BooleanToYesNoConverter
wird zweimal aufgerufen. Daher möchte ich meinen code zu optimieren. Und binden wollen, die Wert ToolTip
Eigenschaft direkt auf den Wert der Zelle.
Ich versuchte Ansatz mit ElementName
-s. Aber ich habe keine Ahnung, was soll ich angeben, in Pfad Eigenschaft der Bindung.
<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>
Habe ich versucht zu verwenden DataGridTemplateColumn
statt DataGridTextColumn
, aber es funktioniert nicht so.
<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>
Wie kann ich das lösen meiner Aufgabe. Ist es überhaupt möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diesen Stil :
Content
wird die Immobilie Art derObject
.Object
hat keineText
Eigenschaft. Wissen Sie, welche Art von Objekt hat einenText
Eigenschaft? In anderen Worten, welche ArtText
Eigentum gehört? Es ist interessant und nicht offensichtlich.TextBlock
sind Sie tolking über inControlTemplate
vonDataGridCell
. Aber ich sehe es nicht. Sie reden über Stil<Style TargetType="local:DataGridCell">
? Könnte Sie kopieren und einfügen, die wichtiger Bestandteil der Mode? Sie können es hinzufügen, um Ihre Antwort als update.<Style x:Key="CellWithTooltip" ...>
und (2) es gelten für die Spalten wollte, wie dies<DataGridTextColumn CellStyle="{StaticResource CellWithTooltip}" ... />
.Versuchen nur die Einstellung der ToolTip der DataGridCell die DataContext-wie so:
Wenn Sie nicht bekommen, die gewünschten Inhalte können Sie dann angeben, die Wandler sowie: