0

グーグルで検索しましたが、本当に役立つものは見つかりませんでした。私の目的は、指定さDataTemplateれたものに対して指定されたものを表示することですClass

    <FlowDocumentScrollViewer>
        <FlowDocument>
            <Table BorderBrush="Black" BorderThickness="1" CellSpacing="0">
                <Table.Columns>
                    <TableColumn></TableColumn>
                    <TableColumn></TableColumn>
                    <TableColumn></TableColumn>
                    <TableColumn></TableColumn>
                </Table.Columns>
                <Table.RowGroups>
                    <TableRowGroup >
                        <TableRow>
                            <TableCell>DataTemplate1</TableCell>//class1
                            <TableCell>DataTemplate2</TableCell>//class2
                            <TableCell>DataTemplate3</TableCell>//class3
                            <TableCell>DataTemplate4</TableCell>//class4
                        </TableRow>
                    </TableRowGroup> 
                </Table.RowGroups>
            </Table>
        </FlowDocument>
    </FlowDocumentScrollViewer>

重要なのは、このxamlをロードするので、コードビハインドファイルがないため、XAMLのみのソリューションである必要がありXamlReader.Load()ます。

4

1 に答える 1

2

テンプレートが必要なタイプごとに、Resources のどこかに DataType 属性だけを持つ DataTemplate を定義できます。それらを表示するには、データ項目をセル内の ContentControl にバインドする必要があります。int と bool のテンプレートとコレクション アイテムへのバインドの例を次に示します。

<FlowDocumentScrollViewer>
  <FlowDocumentScrollViewer.Resources>
    <DataTemplate DataType="{x:Type system:Int32}">
      <TextBlock Text="{Binding StringFormat='A number: {0}'}" />
    </DataTemplate>
    <DataTemplate DataType="{x:Type system:Boolean}">
      <TextBlock Text="{Binding StringFormat='A bool: {0}'}" />
    </DataTemplate>
  </FlowDocumentScrollViewer.Resources>
  <FlowDocument>
    <Table BorderBrush="Black"
           BorderThickness="1"
           CellSpacing="0">
      <Table.Columns>
        <TableColumn></TableColumn>
        <TableColumn></TableColumn>
        <TableColumn></TableColumn>
        <TableColumn></TableColumn>
      </Table.Columns>
      <Table.RowGroups>
        <TableRowGroup>
          <TableRow>
            <TableCell>
              <BlockUIContainer>
                <ContentControl Content="{Binding MixedTypeList[0]}" />
              </BlockUIContainer>
            </TableCell>
            <TableCell>
              <BlockUIContainer>
                <ContentControl Content="{Binding MixedTypeList[1]}" />
              </BlockUIContainer>
            </TableCell>
            <TableCell>
              <BlockUIContainer>
                <ContentControl Content="{Binding MixedTypeList[2]}" />
              </BlockUIContainer>
            </TableCell>
          </TableRow>
        </TableRowGroup>
      </Table.RowGroups>
    </Table>
  </FlowDocument>
</FlowDocumentScrollViewer>
于 2013-02-12T13:26:19.863 に答える