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

149 Kommentare

  • Kommentar-Link order tamoxifen %PM, %27. %745 %2022 %16:%Jul gepostet von order tamoxifen

    cialis online canada viagra prescription usa canadian pharmacy cialis no prescription how to get prescription for viagra

  • Kommentar-Link diflucan price uk %PM, %22. %952 %2022 %21:%Jul gepostet von diflucan price uk

    ivermectin scabies ivermectin oral solution what parasite medicine contains ivermectin what category is ivermectin

  • Kommentar-Link paxil er %AM, %20. %292 %2022 %06:%Jul gepostet von paxil er

    metformin iv contrast where to buy metformin in south africa how quickly does metformin work what is lactic acidosis metformin

  • Kommentar-Link baricitinib lupus %PM, %17. %961 %2022 %22:%Jul gepostet von baricitinib lupus

    generic baclofen baclofen 10 mg buy online baclofen 20 mg vs soma how long baclofen to work

  • Kommentar-Link diflucan online %PM, %15. %669 %2022 %15:%Jul gepostet von diflucan online

    orlistat hexal купить xenical kopen in nederland xenical price in the philippines how to use orlistat 120 mg

  • Kommentar-Link metformin 2019 %AM, %14. %349 %2022 %07:%Jul gepostet von metformin 2019

    orlistat interactions xenical vs phentermine orlistat 60 mg vs 120 mg 26. how should a patient deal with the side effect of fecal incontinence with orlistat

  • Kommentar-Link metformin 850g %PM, %12. %918 %2022 %21:%Jul gepostet von metformin 850g

    paxil orgasm paxil for bipolar is 10mg of paxil enough what kind of drug is paxil

  • Kommentar-Link deltasone 10 mg price %AM, %12. %099 %2022 %01:%Jul gepostet von deltasone 10 mg price

    seroquel efectos secundarios quetiapine in thailand what is seroquel used for how long does quetiapine take to work for sleep

  • Kommentar-Link baricitinib moa %PM, %09. %861 %2022 %19:%Jul gepostet von baricitinib moa

    ivermectin skin rash ivermectin oral injectable ivermectin dose for goats how to give ivermectin to

  • Kommentar-Link prednisone australia %PM, %07. %990 %2022 %22:%Jul gepostet von prednisone australia

    baclofen reversal lioresal 10 switching from tizanidine to baclofen what is a medical pmc for a baclofen pump

Schreibe einen Kommentar

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