我遇到了一个问题 - 我创建了一个项目,我通过使用绑定到列表框将我的代码绑定到xaml。但是,它在我未来的代码中创建了一些问题 - 我想在我的表单中添加按钮,但是我遇到了一些错误。
'在使用ItemsSource之前,项目集合必须为空。'
当我尝试绑定可绑定列表框之外的某些内容时会发生此错误。
该物业" VisualTree"只能设置一次。
当我尝试在列表框下添加按钮时会发生此错误。
有人可以指导我如何解决这个问题?
我的代码:
<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>
理想的结果是列表框下的按钮。
答案 0 :(得分:0)
您应该在 ListBox
声明下方添加按钮。
抛出您遇到的异常,因为可视树通过绑定填充,您无法再手动更改它。
您需要将所有这些内容放在某个布局容器(Grid
,StackPanel
等)中,因为您无法设置Window
&#39; s / UserControl
&#39; 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>