• 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 53396 mal Letzte Änderung am %PM, %24. %643 %2015 %14:%Jun

149 Kommentare

  • Kommentar-Link ivermectin 9 mg %PM, %18. %607 %2021 %13:%Dez gepostet von ivermectin 9 mg

    buy viagra achat viagra paypal acheter du viagra en pharmacie en france comment arreter les effets du viagra

  • Kommentar-Link cialis pris %AM, %16. %231 %2021 %04:%Dez gepostet von cialis pris

    ventolin vs albuterol buy ventolin australia is albuterol bad for you how long can i use ventolin every 4 hours

  • Kommentar-Link combivent 4g %AM, %15. %531 %2021 %11:%Dez gepostet von combivent 4g

    ivermectin scabies dogs ivermectin 1 how long does ivermectin work where to buy ivermectin for lice

  • Kommentar-Link cialis online %AM, %13. %228 %2021 %04:%Dez gepostet von cialis online

    These are actually impressive ideas in regarding blogging.
    You have touched some fastidious points here. Any way keep up wrinting.

  • Kommentar-Link acheter cialis 5 mg %PM, %12. %942 %2021 %21:%Dez gepostet von acheter cialis 5 mg

    ersatz fГјr cialis cialis generika rezeptfreie alternative zu cialis wer verschreibt cialis

  • Kommentar-Link cialis 10mg prix %AM, %10. %456 %2021 %09:%Dez gepostet von cialis 10mg prix

    metformin 850 mg can you buy metformin in canada without a prescription metformin er 500 mg weight loss what are the side effects of metformin 500 mg?

  • Kommentar-Link ivermectin canada %AM, %10. %419 %2021 %09:%Dez gepostet von ivermectin canada

    ivermectin shampoo ivermectin 5 how long before ivermectin works which ivermectin for chickens

  • Kommentar-Link viagra %AM, %08. %064 %2021 %00:%Dez gepostet von viagra

    cialis alternative bayer generika cialis original cialis auf rechnung cialis welche dosis

  • Kommentar-Link buy amoxil 250mg uk %PM, %01. %675 %2021 %15:%Dez gepostet von buy amoxil 250mg uk

    zithromax tripack azithromycin 500 mg over the counter buy zithromax online next day delivery azithromycin what is it

  • Kommentar-Link chloroquine drug %PM, %30. %001 %2021 %23:%Nov gepostet von chloroquine drug

    neurontin and benadryl gabapentin in india neurontin 400 mg side effects what works like gabapentin

Schreibe einen Kommentar

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