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

149 Kommentare

  • Kommentar-Link viagra natural %AM, %23. %352 %2022 %07:%Jun gepostet von viagra natural

    ventolin hfa directions ventolin uk how to calculate albuterol dosage how long does a ventolin hfa inhaler last

  • Kommentar-Link viagra sales %PM, %22. %864 %2022 %19:%Jun gepostet von viagra sales

    albuterol and budesonide albuterol 100 using albuterol inhaler too much ventolin how many time per day?

  • Kommentar-Link rx tizanidine %PM, %19. %990 %2022 %22:%Jun gepostet von rx tizanidine

    does viagra works get viagra prescription online how to get a cialis prescription online where can you buy viagra from

  • Kommentar-Link cheap gabapentin %PM, %19. %705 %2022 %15:%Jun gepostet von cheap gabapentin

    priligy platinum pen priligy buy online europe dapoxetine hcl 60mg +sildenafil citrate 100mg how to use dapoxetine pills

  • Kommentar-Link levitra 75 mg %AM, %17. %068 %2022 %00:%Jun gepostet von levitra 75 mg

    will viagra work cialis 30 day free trial cialis 40 mg for sale why wont viagra work

  • Kommentar-Link albuterol uk %PM, %16. %923 %2022 %21:%Jun gepostet von albuterol uk

    neurontin used for 600 mg gabapentin capsule interaction of neurontin and naltraxone how long for gabapentin to work for pain

  • Kommentar-Link avana pill %PM, %13. %904 %2022 %20:%Jun gepostet von avana pill

    dapoxetine online pharmacy priligy usa calpers united healthcare priligy how to use priligy

  • Kommentar-Link cialis online canada %PM, %13. %898 %2022 %20:%Jun gepostet von cialis online canada

    ventolin pills albuterol salbutamol ventolin inhaler for dry cough how to use albuterol inhaler with spacer

  • Kommentar-Link Slonsuido %PM, %25. %682 %2022 %15:%Mai gepostet von Slonsuido

    p54cf

    x72ql

    dk3d

  • Kommentar-Link Slonsuido %PM, %24. %770 %2022 %17:%Mai gepostet von Slonsuido

    rv8qw

    k31f3

    mmnj

Schreibe einen Kommentar

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