DataGrid Column ToolTip zur Laufzeit erstellen?

  • WPF

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Versuche es einmal so:

    VB.NET-Quellcode

    1. Imports System.Windows.Controls.Primitives
    2. Class MainWindow
    3. Private Index As Integer = 0
    4. Public Sub OnColumnHeaderClick(sender As Object, e As RoutedEventArgs)
    5. Dim header = DirectCast(sender, DataGridColumnHeader)
    6. If header Is Nothing Then Return
    7. header.ToolTip = "Hallo (" & Index.ToString & ")"c
    8. Index += 1
    9. End Sub
    10. End Class

    XML-Quellcode

    1. <Window x:Class="MainWindow"
    2. xmlns=[url]http://schemas.microsoft.com/winfx/2006/xaml/presentation[/url]
    3. xmlns:x=[url]http://schemas.microsoft.com/winfx/2006/xaml[/url]
    4. Title="MainWindow" Height="350" Width="525">
    5. <Grid>
    6. <DataGrid Name="Versuch" AutoGenerateColumns="False">
    7. <DataGrid.ColumnHeaderStyle>
    8. <Style TargetType="DataGridColumnHeader">
    9. <EventSetter Event="Click" Handler="OnColumnHeaderClick" />
    10. </Style>
    11. </DataGrid.ColumnHeaderStyle>
    12. <DataGrid.Columns>
    13. <DataGridTextColumn Header="First Name"/>
    14. <DataGridTextColumn Header="Last Name"/>
    15. </DataGrid.Columns>
    16. </DataGrid>
    17. </Grid>
    18. </Window>

    Danke für den Tipp... Leider funktioniert es nicht...

    Der erzählt mir, dass er kein String in DataGridColumnHeader umwandeln kann... Deswegen habe ich das hier probiert:

    VB.NET-Quellcode

    1. Public Shared Sub ColumnViewer(ByRef column As DataGridColumn)
    2. ' Dim header As DataGridColumn = CType(column.Header, DataGridColumn)
    3. Dim xx As New DataGridColumnHeader()
    4. xx.ToolTip = "Hallo"
    5. column.Header = xx
    6. End Sub


    Leider auch ohne Erfolg... Die Anwendung stürzt ab...

    Aber es funktioniert so:

    VB.NET-Quellcode

    1. Public Shared Sub ColumnViewer(ByRef column As DataGridColumn)
    2. Dim xx As New DataGridColumnHeader()
    3. xx.ToolTip = "Hallo"
    4. xx.Content = "Hallo"
    5. column.Header = Nothing
    6. column.Header = xx
    7. End Sub


    Danke dir... Hast echt gute Idee gehabt...