У меня следующая проблема:
У меня есть TabControl
с его ItemsSource
, установленным в Binding с объектом ObservableCollection
.Внутри Content
свойства TabControl
я поместил RichTextBox, в который я хочу загрузить текстовый файл.Вот фрагмент кода XAML:
<TabControl Grid.Column="0" x:Name="openFiles" ItemsSource="{Binding OpenedFiles}">
<TabControl.ItemTemplate>
<!-- this is the header template-->
<DataTemplate>
<TextBlock Text="{Binding name}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<!-- this is the body of the TabItem template-->
<DataTemplate>
<RichTextBox x:Name="fileTextBox"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
С каждым новым файлом я хочу иметь возможность загружать содержимое файла в RichTextBox, используя объекты TextRange
и FileStream
, например:
if (openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK )
{
TextRange range;
System.IO.FileStream fStream;
if (System.IO.File.Exists(openFile1.FileName))
{
range = new TextRange(RichTextBox1.Document.ContentStart, RichTextBox1.Document.ContentEnd);
fStream = new System.IO.FileStream(openFile1.FileName, System.IO.FileMode.OpenOrCreate);
range.Load(fStream, System.Windows.DataFormats.Rtf );
fStream.Close();
}
}
Однако я не знаю, как сослаться на RichTextBox
в ContentTemplate
с уровня кода позади.