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?

InformationsquelleAutor monstr | 2014-12-11
Schreibe einen Kommentar