• Webseitenerstellung und -hosting
  • .NET Anwendungsentwicklung
  • softwaregesteuerte Prozessoptimierung
  • .NET

    Programmierung

  • WebseitenErstellung

    undHosting

  • softwaregesteuerte

    Prozessoptimierung

  • Konzeption

    und Beratung

%PM, %15. %669 %2013 %15:%Apr

WPF Datagrid Spalten ein- und ausblenden

geschrieben von
Artikel bewerten
(0 Stimmen)
Leider besteht im WPF Datagrid keine Möglichkeit direkt auf Spalten zuzugreifen. Man kann natürlich durch die Eigenschaft "AutoGenerateColumns=True" und dem Ereignis "AutoGeneratingColumn" des Grid im Code Spalten anzeigen oder auch nicht. Was aber wenn man das ganze dynamisch gestalten will, am besten noch mit direkter Datenbindung und/oder seine Columns im Xaml definieren will? -> Fehlanzeige, da der Datacontext des Grids z.B. nicht an die DataGridTemplateColumn durchgereicht wird. Warum weiss der Geier. Abhilfe schafft folgendes Szenario von Thomas Levesque Leicht abgeändert und nach VB konvertiert. Zuerst braucht man einen Converter der boolsche Werte nach Visibility convertiert:

Public Class VisibilityConverter
Implements IValueConverter

Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert
Try
If value Is Nothing OrElse CBool(value) = False Then Return Visibility.Collapsed

Return Visibility.Visible

Catch ex As Exception
Return Visibility.Collapsed
End Try

end class

End Function
dann eine Klasse die Freezable erbt und eine DependencyProperty "Data" bereitstellt.

Public Class BindingProxy
Inherits Freezable
'Freezable überschreiben
Protected Overrides Function CreateInstanceCore() As Freezable
Return New BindingProxy()
End Function

'Diesen Namen (Data) in der dataProperty und im XAML verwenden
Public Property Data() As Object
Get
Return DirectCast(GetValue(DataProperty), Object)
End Get
Set(value As Object)
SetValue(DataProperty, value)
End Set
End Property

'DependencyProperty für die "Data"
Public Shared ReadOnly DataProperty As DependencyProperty = DependencyProperty.Register("Data", GetType(Object), GetType(BindingProxy), New UIPropertyMetadata(Nothing))
End Class


In den PageResources bzw. Datagridresources diese beiden Klassen referenzieren:











dann die proxy klasse des Grids bestücken. Ich mach das via code


Dim p As BindingProxy = CType(grdElementeBearbeitung.Resources("proxy"), BindingProxy)
p.Data = CType(grdBereiche.SelectedItem, text_bereich)


und die Visiblity der Spalte an die Data Property bzw. das Feld binden


Visibility="{Binding Data.spalte_anzeigen,Converter={StaticResource VisibilityConverter},Source={StaticResource proxy}}"

		
Gelesen 54629 mal Letzte Änderung am %PM, %24. %643 %2015 %14:%Jun

150 Kommentare

  • Kommentar-Link tizanidine 3 mg %AM, %02. %090 %2022 %01:%Feb gepostet von tizanidine 3 mg

    latisse specials mictrobil bimatoprost borboleta lash serum vs latisse how to make latisse last longer

  • Kommentar-Link nolvadex to buy %PM, %30. %027 %2022 %23:%Jan gepostet von nolvadex to buy

    molnupiravir brand name order molnupiravir molnupiravir available molnupiravir latest news

  • Kommentar-Link aralen hair loss %PM, %30. %974 %2022 %22:%Jan gepostet von aralen hair loss

    molnupiravir studies buy A23 thuб»‘c Д‘iб»Ѓu trб»‹ covid molnupiravir molnupiravir adverse events

  • Kommentar-Link latisse 5ml %PM, %28. %799 %2022 %18:%Jan gepostet von latisse 5ml

    zanaflex brand names tizanidine tablets guaifenesin dextromethorphan and zanaflex interactions what is genetic name for zanaflex

  • Kommentar-Link otc zanaflex %PM, %28. %764 %2022 %17:%Jan gepostet von otc zanaflex

    olumiant eczema olumiant incyte eli lilly baricitinib olumiant 4 mg tablets

  • Kommentar-Link viagra pastiglie %PM, %21. %959 %2022 %22:%Jan gepostet von viagra pastiglie

    viagra commande commander viagra en ligne comment Г§a marche le viagra ? viagra ou levitra

  • Kommentar-Link buy ivermectin uk %AM, %18. %392 %2022 %08:%Jan gepostet von buy ivermectin uk

    tarif viagra pharmacie gГ©nГ©rique viagra sans ordonnance prix de viagra en france comment trouver du vrai viagra

  • Kommentar-Link cialis for sale %AM, %16. %417 %2022 %09:%Jan gepostet von cialis for sale

    viagra fille faut il une ordonnance pour acheter du viagra viagra faut il une ordonnance viagra ou generique

  • Kommentar-Link comprar viagra %PM, %14. %621 %2022 %13:%Jan gepostet von comprar viagra

    cialis 40 mg cialis en belgique reaction cutane suite a prise de cialis ou commander cialis generique

  • Kommentar-Link generico cialis %AM, %12. %174 %2022 %03:%Jan gepostet von generico cialis

    viagra femminile forum costo del viagra viagra due volte al giorno cosa contiene il viagra

Schreibe einen Kommentar

Bitte achten Sie darauf, alle Felder mit Stern * zu füllen. HTML-Code ist nicht erlaubt.