物业' visualTree'在Windows Phone 8中设置了多次c#

时间:2014-05-27 09:35:06

标签: c# windows-phone-8

在我的Windows手机应用程序中,我想通过复选框获取所有联系人并在列表框中显示

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,10">
            <TextBlock x:Name="ContactResultsLabel" Text="results are loading..." Style="{StaticResource PhoneTextLargeStyle}" TextWrapping="Wrap"></TextBlock>
            <ListBox x:Name="ContactResultsData" ItemsSource="{Binding listOfContacts}" Height="293" Margin="24,0,0,0">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <CheckBox Name="contactChk" IsChecked="true" Foreground="Black" Background="Black" BorderBrush="Black"></CheckBox>
                        <TextBlock x:Name="ContactResultsName" Text="{Binding Name}" FontSize="50"></TextBlock>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </StackPanel>
    </Grid>

但是,当我在列表框的Checkbox中添加TextblockDataTemplate时,会出现以下错误:

The property 'visualTree' is set more than once

我不明白为什么它给了,请建议我,等待你的回复。 感谢。

2 个答案:

答案 0 :(得分:2)

您只能在DataTemplate中添加一个Element根,代码可以像这样更改:

<DataTemplate>
    <Grid>
        <CheckBox Name="contactChk" IsChecked="true" Foreground="Black" Background="Black" BorderBrush="Black"></CheckBox>
        <TextBlock x:Name="ContactResultsName" Text="{Binding Name}" FontSize="50"></TextBlock>
    </Grid>
</DataTemplate>

答案 1 :(得分:1)

DataTemplate只能有一个孩子。您使用了CheckBoxTextBlock。将它们放在单Grid/StackPanel中。希望这有助于。