我在ListView控件上使用自定义样式。当用户单击ListView中的项目时,我开始下载文件,id就像更新该特定ListViewItem上的进度条。这是我正在使用的风格:
<DataTemplate x:Key="UpdatesListViewItemTemplate">
<Grid Height="80">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Margin="5,0,10,5">
<TextBlock Text="{Binding Name}" Style="{StaticResource ListViewTitleTextStyle}" TextWrapping="NoWrap" Margin="0, 2"/>
<TextBlock Text="{Binding Description}" Style="{StaticResource ListViewDetailTextStyle}" TextWrapping="NoWrap" Margin="0, 2"/>
<TextBlock Text="{Binding Date}" Style="{StaticResource ListViewDetailTextStyle}" TextWrapping="NoWrap" Margin="0, 2"/>
</StackPanel>
<ProgressBar x:Name="progressBar" Grid.Column="1" Margin="5, 0" />
</Grid>
</DataTemplate>
以下是我尝试过的一些事情:
我完全没有想法。任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
对ViewModel
中的每件商品使用ListView
。因此,不要使用ObservableCollection<Model>
,而是将其设为ObservableCollection<DownloadableContentViewModel<Model>>
。
然后,在此ViewModel
中,输入ProgressBar
的值,例如是否应显示ProgressBar
以及值应该是什么。通过类似Model
属性的内容展示您的WrappedItem
。
您的Bindings
将更改为Text="{Binding WrappedItem.Name}"
,否则将以相同的方式运作。
此外,您应该在Command
Wrapper
内置ViewModel
,开始下载并执行该逻辑。然后,您可以将其绑定到ListViewItem
内的按钮。
希望这有帮助,快乐编码!