내 WP8 앱에서 배경 전송 서비스와 LongListSelector
을 ProgressBar
과 함께 사용하여 DataTemplate
항목을 다운로드 진행 상황을 사용자에게 표시합니다. 문제는 ProgressBar
이 실제 진행 상황을 나타내지는 않지만 계속 앞뒤로 점프합니다.LongListSelector에 포함 된 경우 ProgressBar의 동작이 잘못되었습니다.
여기 내 XAML입니다. LongListSelector
주기적으로 BackgroundTransferRequest
's의 목록을 접수에와 ProgressBar
이를 표시하기 위해 사용하는 :
<phone:LongListSelector IsGroupingEnabled="False" x:Name="Views">
<phone:LongListSelector.ListHeader>
<StackPanel Style="{StaticResource M20}">
<controls:TextTile Txt="Cancel downloads" Sign="x" Tap="CancelDownloads" />
</StackPanel>
</phone:LongListSelector.ListHeader>
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<ProgressBar Maximum="{Binding TotalBytesToReceive}" Value="{Binding BytesReceived}" Minimum="0" />
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
LongListSelector
클래스 뒤에 코드에서 정기적으로 업데이트됩니다 :
Views.ItemsSource = BackgroundTransferService.Requests.ToList()
이 문제는 경우에 LongListSelector
에서 일어나는 많은 경우 하나 이상의 항목이 표시됩니다. 예를 들어 ListBox
을 사용하려고하면 모든 것이 잘 작동합니다. 왜 이런 일이 일어나고 그것을 해결하기 위해 무엇을해야합니까? 나는 의견이 맞지 않을 수
XAML을 가져 와서 문제를 다시 만들 수 없습니다. 잘 작동하는 것처럼 보였다. ProgressBar가 불확실한 모양입니까? ProgressBar.IsIndeterminate = false로 설정해보십시오. 아마 당신이보고있는 문제의 스크린 샷이 도움이 될까요? –
그냥 생각났다 - LongListSelector.ItemsSource가 바인딩 된 개체 유형에 상관없이 클래스를 게시 할 수 있습니까? (BytesReceived 및 TotalBytesToReceive가있는 것) –
@GaryJohnson, ProgressBar는 중간 단계가 아니며 진행률을 표시하지만 잘못 수행합니다. 한 순간에는 60 %, 다음 순간에는 30 %를 표시 할 수 있습니다. 바인딩 된 클래스는 BackgroundTransferRequest (http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh239291(v=vs.105).aspx)입니다. – Anton