Diese Seite drucken
%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 54706 mal Letzte Änderung am %PM, %24. %643 %2015 %14:%Jun

150 Kommentare

  • Kommentar-Link Aqcfenconetat %PM, %06. %689 %2021 %15:%Feb gepostet von Aqcfenconetat

    cheapest 10mg cialis free viagra and cialis samples cialis 20 mg

  • Kommentar-Link KuikLourl %PM, %06. %588 %2021 %13:%Feb gepostet von KuikLourl

    buy prescription only viagra viagra cheap on line mastercard viagra blog site

  • Kommentar-Link Jbbvplemn %AM, %06. %402 %2021 %08:%Feb gepostet von Jbbvplemn

    canadian meds skin care no prescription pharmacies

  • Kommentar-Link Kbcxbofs %AM, %05. %178 %2021 %03:%Feb gepostet von Kbcxbofs

    viagra generic canadian pharmacy anti viral canadian pharcharmy

  • Kommentar-Link FvfcGealo %AM, %04. %485 %2021 %10:%Feb gepostet von FvfcGealo

    viagra without a perscription viagra in sacramento viagra blog site

  • Kommentar-Link JbnbFrano %AM, %04. %283 %2021 %05:%Feb gepostet von JbnbFrano

    viagra generic canadian pharmacy discount pharmacy discount canadian drugs

  • Kommentar-Link Jdbxplemn %AM, %30. %094 %2021 %01:%Jan gepostet von Jdbxplemn

    super p viagra viagra 50 mg generic buy purchase viagra cialis paypal [url=http://llviabest.com/]viagra price in pakistan[/url] ’

  • Kommentar-Link Lbgplemn %AM, %27. %046 %2021 %00:%Jan gepostet von Lbgplemn

    what is viagra buy with pay pal viagra buy viagra paypal [url=http://genqpviag.com/]viagra mon line[/url] ’

  • Kommentar-Link JamesSnamn %AM, %21. %463 %2020 %10:%Okt gepostet von JamesSnamn

    Bgckbd oqrmfa new cialis cialis buy online coupons for cialis Vifggl rppqim generic to cialis sildenafil vs tadalafil

  • Kommentar-Link VictorBup %AM, %17. %419 %2020 %09:%Okt gepostet von VictorBup

    Xswslr ttoabs buy cialis online india The edibles may set-back a reversal agent.