Tôi có DataGrid
và một trong những DataGrid
cột trông như thế nàyBinding tài sản DataGridCell ToolTip để giá trị của 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>
Vấn đề là tôi buộc phải sử dụng BooleanToYesNoConverter
Chuyển đổi hai lần. Điều này có nghĩa là phương thức Convert
của BooleanToYesNoConverter
sẽ được gọi hai lần. Do đó, tôi muốn tối ưu hóa mã của mình. Và muốn ràng buộc giá trị của thuộc tính ToolTip
trực tiếp vào giá trị của ô.
Tôi đã thử phương pháp tiếp cận bằng cách sử dụng ElementName
-s. Nhưng tôi không biết tôi nên chỉ định điều gì trong số Đường dẫn thuộc tính ràng buộc.
<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>
Tôi cố gắng để sử dụng DataGridTemplateColumn
thay vì DataGridTextColumn
, nhưng nó does't làm việc quá.
<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>
Làm cách nào để giải quyết tác vụ của mình. Có thể ở tất cả?
Nó hoạt động tốt. Cám ơn. – monstr
Btw, 'Nội dung' là loại thuộc tính của' Đối tượng'. 'Đối tượng' không có thuộc tính' Văn bản'. Bạn có biết loại đối tượng nào có thuộc tính 'Văn bản' không? Nói cách khác, thuộc tính 'Văn bản' thuộc loại nào? Nó là thú vị và không rõ ràng. – monstr
Có bạn đang nghĩ đúng. Trong ContentPresentor của DataGridCell, nó có một TextBlock và TextBlock này có thuộc tính Text. Bạn có hiểu không? –