C# Windows应用商店应用程序:从ListView中的样式以编程方式进行访问控制

C# Windows应用商店应用程序:从ListView中的样式以编程方式进行访问控制,c#,windows-8,windows-store-apps,winrt-xaml,C#,Windows 8,Windows Store Apps,Winrt Xaml,我正在ListView控件上使用自定义样式。当用户单击ListView中的某个项目时,我开始下载文件,我想更新该特定ListViewItem上的进度条。以下是我使用的样式: <DataTemplate x:Key="UpdatesListViewItemTemplate"> <Grid Height="80"> <Grid.ColumnDefinitions> <ColumnDefinition Width

我正在ListView控件上使用自定义样式。当用户单击ListView中的某个项目时,我开始下载文件,我想更新该特定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>
以下是我尝试过的一些事情:

将名为DownloadProgress的属性绑定到进度栏的Value属性。有没有办法更新特定的ListViewItem,使其重新获取绑定值? 尝试从传递到ItemClick方法的sender对象访问ListViewItem。我找不到任何返回ListViewItem的属性/方法。 我完全没有主意了。感谢您的帮助。谢谢。

为ListView中的每个项目使用ViewModel。因此,不要使用ObservableCollection,而是使用ObservableCollection

然后,在此ViewModel中,输入ProgressBar的值,例如是否应显示ProgressBar以及值应该是什么。通过类似WrappedItem属性的方式公开模型

您的绑定将更改为Text={Binding WrappedItem.Name},但在其他情况下工作方式相同

此外,您应该在包装器ViewModel中放置一个命令,该命令启动下载并执行该逻辑。然后可以将其绑定到ListViewItem中的按钮

希望这有帮助,快乐编码