动态更改 DataTemplate Child

Change DataTemplate Child Dynamically

我有一个 ListView,其中有一列用于复选框。选中复选框后,我想用 progress ring 将其换掉。然后,当我想要的activity完成时,我可以隐藏进度环并显示选中的复选框。这可能吗? DataTemplate 似乎只接受一个 child

<GridViewColumn x:Name="StatusHeader" Header="Status" Width="50">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Margin="5, 0" IsChecked="{Binding loaded}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

DataTemplate 只包含一个子项,但是这个子项可以毫无问题地成为容器,例如 Grid 或 StackPanel,它将包含您的元素:

<GridViewColumn x:Name="StatusHeader" Header="Status" Width="50">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <StackPanel>
                <CheckBox Margin="5, 0" IsChecked="{Binding loaded}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
                <ProgressBar />
            </StackPanel>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>