Benutzer mit den meisten Antworten
WPF: ListView Spaltentext anpassen

Frage
-
Hallo Community,
ich habe eine ListView, das aus einer Liste befüllt wird. Die Liste enthält Objekte vom Typ Printer (selbst definiert). Diese Klasse hat zwei Bool-Werte (hasnetconnection und haslocalconnection). Diese Werte werden auch jeweils korrekt als true und false dargestellt. Ich möchte aber, dass jeweils als Text "Ja" angezeigt wird, wenn der Bool-Wert auf true steht und "Nein", wenn der Bool-Wert auf false steht.
Wie kann ich das realisieren?
Vielen Dank
powershellking
- Bearbeitet powershellking Dienstag, 27. Dezember 2016 18:45
Antworten
-
Hallo,
wie das genau funktioniert hängt von dem UI-Framework ab das du verwendest. Verwendest du WPF? Wenn ja, dann brauchst du nur eine eigene Spalte definieren und darin die Eigenschaft passend anzeigen.
Zu der eigenen Spalte im DataGrid bzw. ListView siehe: WPF Datagrid binding and column display
Zum Anzeigen von Ja/Nein siehe: WPF: Display a bool value as “Yes” / “No”
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 30. Dezember 2016 08:13
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 6. Januar 2017 14:03
Alle Antworten
-
Hallo,
wie das genau funktioniert hängt von dem UI-Framework ab das du verwendest. Verwendest du WPF? Wenn ja, dann brauchst du nur eine eigene Spalte definieren und darin die Eigenschaft passend anzeigen.
Zu der eigenen Spalte im DataGrid bzw. ListView siehe: WPF Datagrid binding and column display
Zum Anzeigen von Ja/Nein siehe: WPF: Display a bool value as “Yes” / “No”
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 30. Dezember 2016 08:13
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 6. Januar 2017 14:03
-
Hallo,
ich habe die Spalten bereits selbst definiert.
<ListView x:Name="lv_printerlist" HorizontalAlignment="Left" Height="223" Margin="10,36,0,0" VerticalAlignment="Top" Width="652" SelectionChanged="lv_printerlist_SelectionChanged" MouseDoubleClick="lv_printerlist_MouseDoubleClick"> <ListView.View> <GridView> <GridViewColumn Header="Hersteller" Width="80" DisplayMemberBinding="{Binding manufacturer}"/> <GridViewColumn Header="Modell" Width="80" DisplayMemberBinding="{Binding model}"/> <GridViewColumn Header="Netzwerk" Width="70" DisplayMemberBinding="{Binding hasnetconnection}"/> <GridViewColumn Header="lokal" Width="70" DisplayMemberBinding="{Binding haslocalconnection}"/> <GridViewColumn Header="Treiberpfad" Width="340" DisplayMemberBinding="{Binding driverpath}"/> </GridView> </ListView.View> </ListView>
Über diese Bindings lese ich die Werte ein. Nur steht da dann halt True bzw. False. Diese Werte möchte ich ersetzen. Wie kann ich das machen?
Vielen Dank
powershellking
Vielen Dank powershellking
-
So wie ich es oben geschrieben habe. Du definierst ein Template für die GridViewColumn und dieses kann dann einen Converter oder ein benutzerdefiniertes Binding oder eine andere Technik für die Anzeige nutzen.
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub -
Ich habe das nun mit der Lösung von hier realisiert, was auch problemlos funktioniert. Sobald ich aber im XAML
<local:BoolToStringConverter x:Key="BooleanToStringConverter" FalseValue="Nein" TrueValue="Ja" />
einbinde, erhalte ich die Meldung "Erstellen Sie das/die Projekt, um die Entwurfsansicht zu aktualisieren. Die Designansicht kann nicht ordnungsgemäß angezeigt werden, da einige benutzerdefinierte Elemente noch nicht erstellt wurden." Mein Design wird nicht mehr angezeigt, aber der Buildvorgang läuft einwandfrei durch und alles funktioniert.
Muss ich jetzt jedes Mal die Ressource auskommentieren, um mein Design zu bearbeiten oder gibt es eine andere Möglichkeit?
Vielen Dank
powershellking
Vielen Dank powershellking