Я новичок в WPF, и я нашел несколько похожих вопросов, но не могу понять последнюю часть. У меня есть ViewModel с ObservableCollection, которая содержит сообщения об ошибках. Я хочу отобразить их в форме и разрешить пользователю выбирать и копировать все или часть сообщений. (Раньше в приложениях WinForm я использовал для этого RichTextBox, но не могу понять, как привязать его к коллекции в WPF.)
Я получил то, что хотел, со следующим xaml, но нет встроенного способа выбора и копирования, как я мог бы с RichTextBox. Кто-нибудь знает, какой элемент управления я должен использовать, или есть ли способ включить выбор/копирование содержимого всех TextBlocks или способ привязать это к RichTextBox?
<Grid Margin="6">
<ScrollViewer VerticalScrollBarVisibility="Auto" Height="40" Grid.Column="0" Margin="6">
<ItemsControl ItemsSource="{Binding ErrorMessages}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Mode=OneWay}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Grid>
[Изменить] @Andrey Shvydky - Это не поместится в комментарий. Мне потребовалось некоторое время, чтобы понять правильный синтаксис (особенно с /,), но в итоге я остановился на синтаксисе Flow Document, показанном ниже. Он выглядит правильно в форме и на первый взгляд кажется, что он поддерживает выбор всего / копирование. Но когда я вставляю после выбора всего/копии, ничего не появляется. Кто-нибудь знает, почему?
<Grid Margin="6">
<FlowDocumentScrollViewer>
<FlowDocument >
<Paragraph>
<ItemsControl ItemsSource="{Binding ErrorMessages, Mode=OneWay}" />
<Run Text="{Binding /, Mode=OneWay}" />
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</Grid>