ho DataGrid
e una delle colonne DataGrid
assomiglia a questoBinding proprietà DataGridCell ToolTip al valore della DataGridCell
<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>
Il problema è che costretto a usare BooleanToYesNoConverter
convertitore due volte. Significa che il metodo Convert
di BooleanToYesNoConverter
verrà invocato due volte. Pertanto, voglio ottimizzare il mio codice. E desidera associare il valore della proprietà ToolTip
direttamente al valore della cella.
Ho provato l'approccio con l'utilizzo di ElementName
-s. Ma non ho idea di cosa dovrei specificare nella proprietà Path di associazione.
<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>
ho provato ad usare DataGridTemplateColumn
invece di DataGridTextColumn
, ma does't lavoro troppo.
<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>
Come posso risolvere il mio compito. È possibile a tutti?
Funziona bene. Grazie. – monstr
Btw, 'Content' è il tipo di proprietà di' Object'. 'Object' non ha la proprietà' Text'. Sai che tipo di oggetto ha una proprietà 'Text'? In altre parole, a che tipo appartiene la proprietà 'Text'? È interessante e non ovviamente. – monstr
Sì, stai pensando bene. In ContentPresentor di DataGridCell, ha un TextBlock e questo TextBlock ha la proprietà Text. Hai capito? –