在我的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
中添加Textblock
和DataTemplate
时,会出现以下错误:
The property 'visualTree' is set more than once
我不明白为什么它给了,请建议我,等待你的回复。 感谢。
答案 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
只能有一个孩子。您使用了CheckBox
和TextBlock
。将它们放在单Grid/StackPanel
中。希望这有助于。