在彻底阅读了关于flowdocuments的文档(在WPF中)之后,似乎flowdocument不能轻易支持数据绑定。请说这不是真的!我有一个使用Expression Blend中的示例数据的列表框,我在textdocument中插入了一个文本块。 textblock(文本属性)被数据绑定到列表框中的字符串数据。运行项目后,我希望文本块文本随着列表框选择的改变而改变,但没有任何反应。数据绑定不起作用。使用flowdocument进行数据绑定的最简单方法是什么?
这是XAML。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication1.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<DataTemplate x:Key="ItemTemplate">
<StackPanel>
<TextBlock Text="{Binding Property1}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}">
<FlowDocumentScrollViewer Margin="120,64,256,126">
<FlowDocument>
<Paragraph><Run Text="Only A Test"/><InlineUIContainer>
<TextBlock TextWrapping="Wrap" Text="{Binding Collection[0].Property1}" Height="56" Width="112"/>
</InlineUIContainer></Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
<ListBox ItemTemplate="{DynamicResource ItemTemplate}" ItemsSource="{Binding Collection}" Margin="0,83.847,52,62.153" HorizontalAlignment="Right" Width="200"/>
</Grid>
</Window>
答案 0 :(得分:1)
根据2009年4月的this Microsoft documentation,这是不可能的:
虽然流文档中有许多强大的功能,但如果您的文档是从动态数据生成的,那么您会遇到一些问题:流文档中不支持数据绑定。流文档元素(Section,Table,Run,Paragraph等)是依赖项对象,但不定义任何允许您动态更改或生成内容的依赖项属性。