>我遇到了一个问题 - 我创建了一个项目,通过使用绑定到列表框将我的代码绑定到 xaml。但是,它在我未来的代码中产生了一些问题 - 我想在我的表单中添加按钮,但我遇到了一些错误。
"在使用 ItemsSource 之前,Items 集合必须为空。">
当我尝试绑定可绑定列表框之外的内容时,会发生此错误。
属性"可视化树"只能设置一次。
当我尝试在列表框下方添加按钮时,会发生此错误。
有人可以指导我如何解决这个问题吗?
我的代码:
<ListBox x:Name="ItemsControl1">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5">
</UniformGrid>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="2" Width="Auto" Height="Auto">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Number}"/>
<Image Source="{Binding Source}" Margin="0,0,5,0"/>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
理想的结果是列表框下的按钮。
声明下方添加按钮ListBox
。您面临的异常会引发,因为可视化树是通过绑定填充的,您无法再手动更改它。你需要把所有这些东西放在一些布局容器(Grid
、StackPanel
等(中,因为你不能设置Window
的UserControl
Content
属性两次:
<StackPanel>
<ListBox x:Name="ItemsControl1">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5">
</UniformGrid>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="2" Width="Auto" Height="Auto">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Number}"/>
<Image Source="{Binding Source}" Margin="0,0,5,0"/>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button/>
</StackPanel>