gpt4 book ai didi

c# - 在使用 ItemsSource 之前,项目集合必须为空

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:25 24 4
gpt4 key购买 nike

如果我将 DataTrigger 放在一个简单的列表框中,我会得到这个运行时异常:

Items collection must be empty before using ItemsSource



我的没有数据触发器的列表框(也不异常(exception)):
<ListBox ItemsSource="{Binding EdgedBoards}" SelectedItem="{Binding SelEdgedBoard, Mode=TwoWay}" DisplayMemberPath="Name">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}"
BasedOn="{StaticResource {x:Type ListBoxItem}}">

<Setter Property="IsSelected"
Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

我的列表框与 DataTrigger :
<ListBox ItemsSource="{Binding EdgedBoards}" SelectedItem="{Binding SelEdgedBoard, Mode=TwoWay}" DisplayMemberPath="Name">
<Style TargetType="{x:Type ListBox}" BasedOn="{StaticResource {x:Type ListBox}}">
<Setter Property="Focusable" Value="True" />

<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=EdgedBoardsAdd_UC, Path=Visibility}" Value="Visible">
<Setter Property="Focusable" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>

<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

后面的代码有什么问题?

最佳答案

您没有正确声明样式,因此它被设置为列表框的内容 - 您正在手动声明一个包含单个样式的列表。

你应该包装你现有的Style带有 <ListBox.Style> 的元素元素来解决这个问题。

关于c# - 在使用 ItemsSource 之前,项目集合必须为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com