Combobox ItemSource问题

时间:2015-10-09 09:55:45

标签: c# wpf xaml combobox

我有以下代码

<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 insode组合框时,我收到类似&#34的错误;在使用ItemsSource之前,Items集合必须为空。&#34;

如果我删除项目源绑定,我没有收到此错误。但我需要使用此项目源。任何选择?

由于

2 个答案:

答案 0 :(得分:0)

您无法使用ItemsSource,同时在XAML中定义自定义项目。

我想,你要找的东西是ItemTemplate的{​​{1}}属性。

答案 1 :(得分:0)

原因是Items是任何ItemsControl的内容属性(例如ComboBox)。因此,当您在ComboBox中放置任何元素时,它会自动添加到Items集合中。在您的情况下,您需要执行以下操作之一:

  • 在ComboBox附近声明TextBlock
  • 使用ItemTemplate属性
  • 停止使用ItemsSource并使用Items