在我的 MVVM WPF 应用程序中,我使用的是数据绑定流文档。我使用此处描述的技术能够将我的数据绑定到流文档。我的流文档绑定到我的视图模型中的公共属性。该属性是自定义类型的可枚举,如下所示:
public IEnumerable<Person> Persons
{
get { return _persons; }
set { _persons = value; }
}
流文档显示在 FlowDocumentScrollViewer 控件中。该文档如下所示:
code name lastname
---- ----- ---------
1 john johnson
1 peter peterson
2 jane jane
3 john doe
绑定工作正常,但是我想在每个不同的代码之后添加一个空行:
code name lastname
---- ----- ---------
1 john johnson
1 peter peterson
2 jane jane
3 john doe
我在视图中的 Xaml 是:
<FlowDocumentScrollViewer>
<FlowDocument>
<flowdoc:ItemsContent ItemsSource="{Binding Path=Persons}">
<flowdoc:ItemsContent.ItemsPanel>
<DataTemplate>
<flowdoc:Fragment>
<Table BorderThickness="1" BorderBrush="Black">
<TableRowGroup flowdoc:Attached.IsItemsHost="True">
<TableRow Background="LightBlue">
<TableCell>
<Paragraph>ronde</Paragraph>
</TableCell>
<TableCell>
<Paragraph>hal</Paragraph>
</TableCell>
<TableCell>
<Paragraph>datum</Paragraph>
</TableCell>
</TableRow>
</TableRowGroup>
</Table>
</flowdoc:Fragment>
</DataTemplate>
</flowdoc:ItemsContent.ItemsPanel>
<flowdoc:ItemsContent.ItemTemplate>
<DataTemplate>
<flowdoc:Fragment>
<TableRow>
<TableCell>
<Paragraph>
<flowdoc:BindableRun BoundText="{Binding Path=Code}" />
</Paragraph>
</TableCell>
<TableCell>
<Paragraph>
<flowdoc:BindableRun BoundText="{Binding Path=Name}" />
</Paragraph>
</TableCell>
<TableCell>
<Paragraph>
<flowdoc:BindableRun BoundText="{Binding Path=LastName}" />
</Paragraph>
</TableCell>
</TableRow>
</flowdoc:Fragment>
</DataTemplate>
</flowdoc:ItemsContent.ItemTemplate>
</flowdoc:ItemsContent>
关于如何在不违反 MVVM 规则的情况下执行此操作的任何建议?似乎对流文档进行数据绑定的代价是布局不灵活。
提前致谢