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

149 Kommentare

  • Kommentar-Link ppu-prof_Ei %AM, %07. %229 %2024 %04:%Mär gepostet von ppu-prof_Ei

    Наша группа опытных специалистов приготовлена предоставлять вам передовые методы, которые не только обеспечат надежную протекцию от холода, но и дарят вашему жилью элегантный вид.
    Мы практикуем с современными компонентами, сертифицируя долгосрочный время использования и выдающиеся выходы. Изолирование облицовки – это не только экономия тепла на отоплении, но и заботливость о окружающей среде. Энергоспасающие подходы, какие мы производим, способствуют не только своему, но и сохранению природы.
    Самое центральное: Прайс лист на утепление фасада у нас стартует всего от 1250 рублей за кв. м.! Это доступное решение, которое переделает ваш жилище в действительный тепличный локал с минимальными тратами.
    Наши труды – это не исключительно изолирование, это разработка территории, в где каждый аспект выражает ваш личный манеру. Мы примем в расчет все ваши пожелания, чтобы осуществить ваш дом еще более уютным и привлекательным.
    Подробнее на https://ppu-prof.ru/
    Не откладывайте занятия о своем жилище на потом! Обращайтесь к профессионалам, и мы сделаем ваш дом не только более теплым, но и модернизированным. Заинтересовались? Подробнее о наших сервисах вы можете узнать на интернет-портале. Добро пожаловать в универсум гармонии и уровня.

  • Kommentar-Link 6i7e8ciu8 %PM, %26. %927 %2024 %21:%Feb gepostet von 6i7e8ciu8

    onlinepharmaciescanada.com try here
    canada pharmacy for viagra canadian pharcharmy online

  • Kommentar-Link i3pbvsf4h %PM, %24. %630 %2024 %14:%Feb gepostet von i3pbvsf4h

    canadian viagra online pharmacy reviews Canadian Pharmacy Online canadianphrmacy23.com
    canadian pharmacy viagra online canadian pharmacies shipping usa

  • Kommentar-Link ub5thn4zv %AM, %20. %389 %2024 %08:%Feb gepostet von ub5thn4zv

    cialis pharmacy northwest pharmacy canada
    cialis online pharmacy Canadian Pharmacy ONLINE to Usa

  • Kommentar-Link hrth97dwm %AM, %18. %052 %2024 %00:%Feb gepostet von hrth97dwm

    viagra online canada pharmacy why not check here
    the canada pharmacy pharmacy http://canadianphrmacy23.com/

  • Kommentar-Link Marioglona %AM, %03. %525 %2024 %11:%Feb gepostet von Marioglona

    накрутка зрителей twitch
    https://uletay.net https://gorod.top/ https://todaynews.pro/
    https://itnewshub.org/ https://cryptonewsdaily.pro/ https://nakrutka.me/

  • Kommentar-Link ppu-prof_Bex %PM, %12. %024 %2024 %23:%Jan gepostet von ppu-prof_Bex

    Забота о вашем доме - это забота о удовлетворении. Теплоизоляция стен - это не только стильный внешний вид, но и гарантия сохранения тепла в вашем уголке уюта. Мы, коллектив экспертов, предлагаем вам сделать ваш дом в идеальное жилище.
    Наши дизайнерские решения - это не просто теплоизоляция, это творческий подход к каждому деталю. Мы разрабатываем идеальному балансу между внешним видом и практической ценностью, чтобы ваше жилище превратилось не только теплым, но и очаровательным.
    И самое важное - доступная стоимость! Мы уверены, что качественные услуги не должны быть неприемлемо дорогими. Сколько стоит сделать утепление фасада начинается всего от 1250 руб/кв. метр.
    Использование современных технологий и высококачественных материалов позволяют нам создавать теплоизоляцию, которая долго служит и надежна. Позабудьте о проблемах с холодом стен и избежите дополнительных расходов на отопление - наше утепление станет вашим надежной преградой перед холодом.
    Подробнее на интернет-ресурсе
    Не откладывайте на потом заботу о радости жизни в вашем жилье. Обращайтесь к мастерам своего дела, и ваш уголок станет настоящим архитектурным искусством, которое дарит тепло и радость. Вместе мы создадим комфортабельное жилье, где вам будет по-настоящему комфортно!

  • Kommentar-Link Danieldeats %PM, %23. %844 %2023 %19:%Sep gepostet von Danieldeats

    https://interpharm.pro/# ordering prescription drugs from canada
    canadian pharmacy non prescription - internationalpharmacy.icu The staff exudes professionalism and care.

  • Kommentar-Link Danieldeats %AM, %23. %476 %2023 %10:%Sep gepostet von Danieldeats

    http://interpharm.pro/# buying drugs online no prescription
    canada mail order prescription - interpharm.pro A one-stop-shop for all my health needs.

  • Kommentar-Link Oscarkinue %AM, %06. %182 %2023 %03:%Sep gepostet von Oscarkinue

    itnewshub.org
    https://uletay.net https://gorod.top/ https://todaynews.pro/
    https://itnewshub.org/ https://cryptonewsdaily.pro/

Schreibe einen Kommentar

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