1

How can I bind a WPF TextBlock to a text file? I want for the TextBlock to display the content of the file.

Dave Clemmer
  • 3,741
  • 12
  • 49
  • 72
kjv
  • 11,047
  • 34
  • 101
  • 140

3 Answers3

2

You need to read the file into a string in memory and bind to that string instead.

View model:

class ViewModel
{
    public string FileText { get; set; }
    public void ReadFile(string path)
    {
        FileText = File.ReadAllText(path);
    }
}

XAML:

<TextBlock Text="{Binding FileText}"/>
Aviad P.
  • 32,036
  • 14
  • 103
  • 124
0

This post describes a custom markup extension that, once defined, lets you include the content of a file via XAML:

<Window
    x:Class="WPF.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wpf="clr-namespace:WPF">
    <TextBlock Text="{wpf:Text 'Assets/Data.txt'}" />
</Window>
Community
  • 1
  • 1
Petter Hesselberg
  • 5,062
  • 2
  • 24
  • 42
0

If you want the text to be formatted my inline markup you could look at the sub-class of TextBlock I made here. There is a convertor between a String of xaml markup and an InlineCollection(actually a generic list of Inlines) too.

Community
  • 1
  • 1
Jodrell
  • 34,946
  • 5
  • 87
  • 124