Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将模板/数据模板添加到TableCell_C#_Xaml_Templates_Datatemplate_Xmltable - Fatal编程技术网

C# 如何将模板/数据模板添加到TableCell

C# 如何将模板/数据模板添加到TableCell,c#,xaml,templates,datatemplate,xmltable,C#,Xaml,Templates,Datatemplate,Xmltable,我在谷歌上到处搜索,但没有找到任何真正有用的东西; 我的目的是为指定的类显示指定的数据模板: <FlowDocumentScrollViewer> <FlowDocument> <Table BorderBrush="Black" BorderThickness="1" CellSpacing="0"> <Table.Columns>

我在谷歌上到处搜索,但没有找到任何真正有用的东西; 我的目的是为指定的
类显示指定的
数据模板

    <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>

DataTemplate1//class1
DataTemplate2//class2
DataTemplate3//class3
DataTemplate4//class4

重要信息:它必须是仅限XAML的解决方案,因为我是根据
XamlReader.load()
加载此XAML的,所以不会有代码隐藏文件。

对于每个需要模板的类型,您可以在参考资料中的某个位置定义一个数据模板,其中只包含一个数据类型属性。要让它们显示出来,您需要将数据项绑定到单元格中的某个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>


真的没有更简单的方法吗?你觉得这有什么困难吗?你的答案没有什么困难,只是我跳到deni的许多复制粘贴,因为通常我像
资源字典中的
那样绑定,所以我想我可以做类似的事情