Listview nach Bearbeitung Zeile ausblenden oder Schriftfarbe ändern

  • WPF

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Translating-IT.

    Listview nach Bearbeitung Zeile ausblenden oder Schriftfarbe ändern

    Hallo,

    ich habe eine ListView mit GridView, die per Binding befüllt wird (2 Spalten). Wenn der Benutzer nun eine Zeile auswählt, bekommt er Vorschläge und Erklärungen und kann diese in einer Textbox "bearbeiten und übernehmen", kommentieren und Kommentar abspeichern" oder einfach "ignorieren". Sobald er eine dieser Optionen ausgewählt und ausgelöst hat, soll für die ausgewählte Zeile in der ListView:

    - die Schriftfarbe verändert werden (z. B. ausgrauen)
    - die Zeile ausgeblendet werden (um eine Lange Liste zu verkürzen und über Aktivierung einer Checkbox alle Ausblendungen wieder eingeblendet werden)

    Ist das in WPF machbar?

    LG,
    Pascal
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.
    Und auch das hier ist nun teilweise gelöst:

    Einzelne Zeilen verstecken geht so:

    Binding über ObservableCollection

    XAML:

    XML-Quellcode

    1. <wpf:ListView x:Name="lv_errlist" Grid.Column="6" Grid.ColumnSpan="3" Grid.Row="2" Grid.RowSpan="20" SelectionChanged="lv_errlist_SelectionChanged" SelectedIndex="0" Height="Auto">
    2. <ListView.Resources>
    3. <BooleanToVisibilityConverter x:Key="BoolToVisibility" />
    4. </ListView.Resources>
    5. <ListView.ItemContainerStyle>
    6. <Style TargetType="{x:Type ListViewItem}">
    7. <Setter Property="Visibility" Value="{Binding Path=ISENABLED, Converter={StaticResource BoolToVisibility}}"/>
    8. </Style>
    9. </ListView.ItemContainerStyle>
    10. <ListView.View>
    11. <wpf1:GridView x:Name="gv_errlist">
    12. <GridViewColumn Header="Nr." DisplayMemberBinding="{Binding FEHLERID}" Width="Auto"/>
    13. <GridViewColumn Header="Fehler" DisplayMemberBinding="{Binding FEHLER}" Width="Auto"/>
    14. </wpf1:GridView>
    15. </ListView.View>
    16. </wpf:ListView>


    Code behind:
    In OC-Klasse benötigen wir:

    VB.NET-Quellcode

    1. 'Definitionen der benötigten Felder und dann ganz wichtig die nächste Zeilen:
    2. Private _isenabled As Boolean
    3. Property ISENABLED() As Boolean
    4. Get
    5. Return _isenabled
    6. End Get
    7. Set(ByVal value As Boolean)
    8. _isenabled = value
    9. End Set
    10. End Property


    und dann beim Befüllen:

    VB.NET-Quellcode

    1. oc.Add(New _errors() With {.FEHLERID = int_count, .FEHLER = rdr.Item("reftext").ToString.Replace("''", "'"), .FEHLERERKL = rdr.Item("expl").ToString.Replace("''", "'"), .ISENABLED = True}) '.ISENABLED = True (sichtbar)/False (versteckt)



    Jetzt muss ich nur noch rausfinden, wie ich die Schriftfarbe ändern kann.
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.
    Auch wenn ich sonst nix beitragen kann:

    VB.NET-Quellcode

    1. Private _isenabled As Boolean
    2. Property ISENABLED() As Boolean
    3. Get
    4. Return _isenabled
    5. End Get
    6. Set(ByVal value As Boolean)
    7. _isenabled = value
    8. End Set
    9. End Property

    ->

    VB.NET-Quellcode

    1. Property ISENABLED As Boolean

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Property ISENABLED As Boolean

    stimmt
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.
    Letzter Teil ist nun auch gelöst:

    XAML:

    XML-Quellcode

    1. <Style TargetType="{x:Type ListViewItem}">
    2. <Setter Property="Visibility" Value="{Binding Path=ISENABLED, Converter={StaticResource BoolToVisibility}}"/>
    3. <Setter Property="Foreground" Value="{Binding Path=FOREGROUNDC}"/>
    4. </Style>


    Code behind: (über ObservableCollection)

    VB.NET-Quellcode

    1. Private _foregroundc As SolidColorBrush
    2. Public Property FOREGROUNDC As SolidColorBrush
    3. Get
    4. Return _foregroundc
    5. End Get
    6. Set(ByVal value As SolidColorBrush)
    7. _foregroundc = value
    8. End Set
    9. End Property


    und befüllen:

    VB.NET-Quellcode

    1. oc.Add(New _errors() With {.FEHLERID = int_count, .FEHLER = rdr.Item("reftext").ToString.Replace("''", "'"), .FEHLERERKL = rdr.Item("expl").ToString.Replace("''", "'"), .ISENABLED = True, .FOREGROUNDC = New SolidColorBrush(Colors.Gray)})
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.