J'ai créé un TreeViewItem qui contient un ProgressBar.ProgressBar dans TreeViewItem
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Height="35" MinWidth="100">
<CheckBox Name="chk" IsChecked="True" Margin="2" Tag="{Binding}" Style="{DynamicResource myCheckBoxStyle}" />
<TextBlock Text="{Binding}" Padding="0 10 0 10" Width="100" />
<ProgressBar x:Name="tvProgressBar" HorizontalAlignment="Right" Width="300" Height="20" Foreground="#FF089ACE" />
</StackPanel>
</DataTemplate>
Mais je ne peux pas sembler mettre à jour la valeur de la barre de progression, je peux trouver la barre de progression en faisant
ProgressBar pb = (System.Windows.Controls.ProgressBar)(tv.HeaderTemplate.LoadContent() as StackPanel).FindName("tvProgressBar");
Mais quand je mets à jour la valeur de la barre de progression de l'interface utilisateur est pas mis à jour . Si je crée un ProgressBar en dehors de TreeView, les mises à jour sont comme prévu, donc cela semble être la façon dont j'accède au ProgressBar incorporé dans le TreeViewItem ou à la manière dont il doit être mis à jour.
essayez avec des valeurs par défaut des propriétés '' MinValue' et MaxValue' réglage peut-être 'MinValue = 1',' MaxValue = 100'. Impossible de rappeler exactement le nom de la propriété est 'MinValue' ou 'MinimumValue'. –
Les valeurs minimum et maximum ne font pas de différence, merci en tout cas –
Il y a seulement deux raisons pour que votre barre de progression ne soit pas mise à jour visuellement: ** 1) ** vous n'êtes pas réellement en train de changer la valeur, ou ** 2) ** vous tentez d'afficher la progression d'une opération en cours d'exécution dans le thread d'interface utilisateur. La façon correcte d'utiliser 'ProgressBar' est d'exécuter votre opération de longue durée dans un thread d'arrière-plan (par exemple' Task.Run() '), et de mettre cette opération à jour une propriété _view model_, qui est liée à' ProgressBar.Value 'propriété. Vous n'avez pas envoyé un bon [mcve] qui reproduit fidèlement le problème, il n'est donc pas possible de répondre réellement à la question. –