Загружать файлы в разные RichTextBoxes в TabItems - PullRequest
0 голосов
/ 23 мая 2018

У меня следующая проблема:

У меня есть 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 с уровня кода позади.

...