2015-10-09 2 views
0

У меня есть следующий кодвыпадающего ItemSource вопрос

<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 в поле со списком, я получаю сообщение об ошибке, как «коллекция Items должна быть пустой перед использованием ItemsSource.»

Если я удаляю ссылку на источник, я не получаю эту ошибку. Но мне нужно использовать этот источник товара. любые варианты?

Благодаря

+1

Если вы не можете весь код (из-за его длины), по крайней мере, выдает действительный. В вашей разметке я не вижу закрывающий тег для combobox, так что это трудно понять. Если этот TextBox находится внутри или снаружи? – niksofteng

+0

Устанавливаете свойство 'ComboBox.Items' в коде? –

+0

@Empereur Aiman ​​по-прежнему та же ошибка, но все же мне нужно привязать там. – Joseph

ответ

0

Вы не можете использовать ItemsSource и в то же время определения пользовательских элементов в XAML.

Я думаю, что вы ищете ItemTemplate Недвижимость ComboBox.

0

Причина в том, что Элементы являются содержимым любого ItemsControl (например, ComboBox). Таким образом, когда вы добавляете какой-либо элемент внутри ComboBox, он автоматически добавляет в коллекцию Items. В вашем случае необходимо выполнить одно из следующих действий:

  • Declare TextBlock возле ComboBox
  • Используйте ItemTemplate свойство
  • Stop с помощью ItemsSource и использовать элементы вместо
Смежные вопросы