Salve a tutti..Premetto che sono agli inizi con il wpf quindi sono molto inesperto e magari quel che chiedo è banale... Voglio creare una listview con un nome e una progressbar che prende i suoi valori da una observablelist di un oggetto da me creato...vorrei che ci fossero gli header di colonna cosi da poterli ordinare e vorrei che la visibilità di ogni singolo elemento della listview dipenda dalla proprietà visibility dell'oggetto (se visibility è collapsed la riga non si deve vedere, se è visible si deve vedere invece)...ecco il semplice oggetto che ho creato per riempire la listview:
Cercando in internet ho trovato 2 metodi diversi per la listview.. il primo:codice:Class pippo Public Property Name As String Public Property Progress As Integer Public Property Visibility As System.Windows.Visibility Public Property Visible() As Boolean Get Return Visibility = Windows.Visibility.Visible End Get Set(ByVal value As Boolean) If value Then Visibility = Windows.Visibility.Visible Else Visibility = Windows.Visibility.Collapsed End If End Set End Property End Class
Con questo metodo riesco correttamente a gestire la visualizzazione delle righe e la progressbar funziona ma non riesco a trovare il modo di visualizzare i column header...codice:<ListView x:Name="MyList" Margin="0,0,434,342"> <ListView.ItemTemplate> <DataTemplate> <Grid Visibility="{Binding Path=Visibility}"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <TextBlock Text="{Binding Path=Name}" Width="95"/> <ProgressBar Maximum="100" Grid.Column="1" Width="200" Value="{Binding Path=Progress}" /> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView>
questo invece è il secondo metodo:
Con questo metodo ilcolumn header è visualizzato e il riempimento della progressbar funziona benone... solo che non riesco a trovare il modo di nascondere l'intera riga.. funziona solo con la progressbar e basta...codice:<ListView x:Name="Listt" Margin="12,208,0,0"> <ListView.View> <GridView> <GridViewColumn Width="140" Header="GameName" DisplayMemberBinding="{Binding Name}"/> <GridViewColumn Width="140" Header="Progress"> <GridViewColumn.CellTemplate> <DataTemplate> <ProgressBar Maximum="100" Width="100" Height="15" Value="{Binding Path=Progress}" Visibility="{Binding Path=Visibility}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView>
Sapete come modificare uno dei 2 metodi qui sopra per ottenere quello che voglio o come farlo in un altro modo?

Rispondi quotando