В предыдущем вопросе я пытался выяснить, как привязать ObservableCollection в элемент управления, чтобы я мог видеть все строки и выбирать все строки и копировать их из элемента управления содержимым. Ответы на этот вопрос в конечном итоге дали мне вид (и, по-видимому, поведение), которого я хотел, используя следующий XAML. (Я пробовал и FlowDocumentReader, и FlowDocumentScrollViewer - они ведут себя одинаково.)
<Grid>
<FlowDocumentScrollViewer>
<FlowDocument >
<Paragraph>
<ItemsControl ItemsSource="{Binding ErrorMessages, Mode=OneWay}" />
<Run Text="{Binding /, Mode=OneWay}" />
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</Grid>
ErrorMessages - это мое свойство ViewModel, которое возвращает ObservableCollection ‹string>. Он правильно привязывается к ItemsSource, а элемент ‹Run> привязывается к каждой строке в коллекции. Хорошо смотрится, долго держится. Это было так близко, что я пометил свой последний вопрос как ответ, но у меня все еще есть одна проблема.
Я щелкаю правой кнопкой мыши, и появляется меню с параметрами Выбрать все и Копировать. Использование Выбрать все действительно выделяет весь текст, выбор Копировать не вызывает ошибок, но когда я перехожу в Блокнот (или Word, или TextPad и т. Д., Или RTB на form) и попробуйте вставить текст, ничего не появляется. Как новичок в WPF, я подозреваю, что делаю что-то не так, но не знаю, что это такое. Не существует такого понятия, как "невыразительный" текст?
[Edit -June 22 2011] По другим причинам я изменил код, чтобы использовать TextBlock через ItemTemplate внутри ItemsControl, как показано ниже, но я все еще не могу копировать и вставлять.
<DataTemplate x:Key="StringCollection">
<TextBlock TextWrapping="Wrap" Text="{Binding}" TextAlignment="Left"/>
</DataTemplate>
<!--... now down in the ItemsControl-->
<ItemsControl ItemsSource="{Binding ReceivedData, Mode=OneWay}"
ItemTemplate="{StaticResource StringCollection}" />