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

150 Kommentare

  • 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

  • Kommentar-Link prednisone 50 mg cost %PM, %30. %691 %2021 %15:%Nov gepostet von prednisone 50 mg cost

    plaquenil dosage plaquenil 75 mg plaquenil dosage for rheumatoid arthritis what is the common does of plaquenil for lupus symptoms

  • Kommentar-Link buy amoxil canada %AM, %30. %114 %2021 %01:%Nov gepostet von buy amoxil canada

    azithromycin tab 500mg azithromycin 50 mg tablet what are zithromax tablets used for how quickly does azithromycin work for chlamydia

  • Kommentar-Link albuterol 100 mcg %PM, %29. %641 %2021 %14:%Nov gepostet von albuterol 100 mcg

    lasix without prescription order furosemide online lasix medicine congestive heart failure where can i buy lasix online

  • Kommentar-Link lasix 500 mg %AM, %29. %245 %2021 %04:%Nov gepostet von lasix 500 mg

    azithromycin 500mg price azithromycin canadian pharmacy azithromycin 500mg for sinus infection what azithromycin

  • Kommentar-Link albuterol 0.63 mg %PM, %28. %673 %2021 %15:%Nov gepostet von albuterol 0.63 mg

    prednisone water retention prednisone 100 mg weight loss after prednisone taper how long does prednisone stay in your body

  • Kommentar-Link dapoxetine buy us %AM, %28. %410 %2021 %08:%Nov gepostet von dapoxetine buy us

    buy dapoxetine pakistan buy dapoxetine 60 mg in india can you smoke while on dapoxetine reddit where buy priligy

  • Kommentar-Link 60 mg of prednisone %PM, %27. %699 %2021 %15:%Nov gepostet von 60 mg of prednisone

    azithromycin while pregnant azithromycin purchase canada can azithromycin cause yeast infection what is azithromycin for

  • Kommentar-Link buy furosemide 40 mg %PM, %27. %565 %2021 %12:%Nov gepostet von buy furosemide 40 mg

    prednisone and zyrtec deltasone 40 mg will 20mg of prednisone cause weight gain what is considered long term use of prednisone

  • Kommentar-Link provigil cost %PM, %26. %700 %2021 %15:%Nov gepostet von provigil cost

    dapoxetine review buy priligy how to use dapoxetine and sildenafil tablets dapoxetine what is?

Schreibe einen Kommentar

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