How can I bind a WPF TextBlock to a text file? I want for the TextBlock to display the content of the file.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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}"/>
回答2:
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.
回答3:
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>