Combobox ItemSource issue
本文关键字:issue ItemSource Combobox | 更新日期: 2023-09-27 18:16:57
我有以下代码
<ComboBox x:Name="hotelComboBox"
ItemsSource="{Binding HotelCollection}"
SelectedItem="{Binding ActiveHotel,Mode=TwoWay}"
Style="{StaticResource ComboBoxStyle}"
HorizontalAlignment="Center"
Visibility="{Binding IsFirstTimeUser, ConverterParameter=Inverse, Converter={StaticResource BooleanToVisibilityConverter}}">
<TextBlock Text="Select Something"
IsHitTestVisible="False">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility"
Value="Hidden" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=hotelComboBox,Path=SelectedItem}"
Value="{x:Null}">
<Setter Property="Visibility"
Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style></TextBlock>
</ComboBox>
当我在组合框中添加TextBlock时,我得到一个错误,如"项目集合必须在使用ItemsSource之前为空"。
如果我删除项目源绑定,我没有得到这个错误。但我需要使用这个项目源。任何选项?
谢谢
您不能在使用ItemsSource
的同时在XAML中定义自定义项。
我猜,你要找的是ComboBox
的ItemTemplate
属性
原因是Items是任何ItemsControl(如ComboBox)的内容属性。因此,当您在ComboBox中放入任何元素时,它会自动添加到Items集合中。在您的情况下,您需要做以下事情之一:
- 在ComboBox附近声明TextBlock 使用ItemTemplate属性
- 停止使用ItemsSource,使用Items代替