Bonjour,

je bloque actuellement sur une modification UI qui refuse de se faire sur le thread UI. J'ai développé un user control comprenant une toolbar et un RichTextBox. Je voudrais pouvoir utiliser ce control de la manière suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<local:RichTextEditorUC Height="265" Margin="0,10,0,0" Document="{Binding ElementName=MusicalGenreComboBox, Path=SelectedItem.Description, UpdateSourceTrigger=PropertyChanged}"/>
J'ai donc ajouté une dependency propertie à mon user control pour faire le lien avec la propriété 'Document' du RichTextBox. Et dans le callback de cette property je voudrais mettre à jour la valeur 'document' du RichTextBox comme ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 public static readonly DependencyProperty DocumentProperty = DependencyProperty.Register("Document", typeof(FlowDocument),
            typeof(RichTextEditorUC), new PropertyMetadata(OnDocumentChanged));
 
        private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            App.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => {
                RichTextEditorUC editor = (RichTextEditorUC) d;
                editor.RichText.Document = (e.NewValue == null) ? new FlowDocument() : (FlowDocument) e.NewValue;
            }));
        }
L'affectation du 'FlowDocument' me lève une 'InvalidOperationException' avec le message suivant: Le thread appelant ne peut pas accéder à cet objet parce qu'un autre thread en est propriétaire.

Pourriez-vous m'expliquer mon erreur et comment y remédier svp