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

149 Kommentare

  • Kommentar-Link baclofen pill 10 mg %PM, %07. %594 %2022 %13:%Jul gepostet von baclofen pill 10 mg

    metformin for diabetes glucophage 1000 mg tablet how long is metformin good for what does metformin

  • Kommentar-Link cost of ivermectin %AM, %04. %068 %2022 %00:%Jul gepostet von cost of ivermectin

    diflucan dark urine diflucan pills for sale do you take diflucan on empty stomach what is the correct dose of diflucan for sinuses

  • Kommentar-Link paroxetine tab 40mg %AM, %04. %067 %2022 %00:%Jul gepostet von paroxetine tab 40mg

    metformin aging can i buy metformin over the counter in canada side effects of stopping metformin what not to eat on metformin

  • Kommentar-Link cenforce 130 mg %PM, %02. %995 %2022 %22:%Jul gepostet von cenforce 130 mg

    albumin and lasix lasix medicine 20 mg furosemide 20 mg tab ran how does furosemide cause metabolic alkalosis

  • Kommentar-Link propecia generic %PM, %02. %895 %2022 %20:%Jul gepostet von propecia generic

    kamagra natural acheter kamagra generique kamagra cialis levitra pas cher ou acheter kamagra original

  • Kommentar-Link cialis otc %AM, %30. %308 %2022 %06:%Jun gepostet von cialis otc

    viagra gel canadian pharmacy viagra acheter du viagra pas cher viagra comment le prendre

  • Kommentar-Link clomid uk purchase %PM, %27. %573 %2022 %12:%Jun gepostet von clomid uk purchase

    cialis precio cialis 5mg online australia what is the drug cialis used for how much is viagra at chemist warehouse

  • Kommentar-Link bimatoprost %AM, %27. %462 %2022 %10:%Jun gepostet von bimatoprost

    how much cialis cialis daily dosage price of cialis in canada where to buy viagra in perth

  • Kommentar-Link propecia 5mg pills %PM, %24. %829 %2022 %18:%Jun gepostet von propecia 5mg pills

    missed clomid dose clomiphene citrate clomid will clomid work for me when you can ovulation after taking clomid

  • Kommentar-Link buy clomid online %PM, %24. %824 %2022 %18:%Jun gepostet von buy clomid online

    viagra 25 mg cialis strength how can you get viagra how long does cialis take to work

Schreibe einen Kommentar

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