Добавление элемента в выпадающий список Silverlight

#c# #silverlight-4.0 #combobox

#c# #silverlight-4.0 #выпадающий список

Вопрос:

У меня есть Silverlight приложение с a ComboBox , которое заполнено VideoCaptureDevice символом ‘s.

 cbVideoDevices.ItemsSource = CaptureDeviceConfiguration.GetAvailableVideoCaptureDevices();
  

Я пытаюсь добавить элемент «Выбрать видеоустройство» в первый индекс, но я не могу заставить его работать.

Код XAML:

     <ComboBox Height="25" HorizontalAlignment="Left" Margin="0,0,0,0" Name="cbVideoDevices" VerticalAlignment="Top" Width="125" ItemsSource="{Binding AudioDevices}" SelectedItem="{Binding SelectedAudioDevice}">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding FriendlyName}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
  

Ответ №1:

Ваша явная настройка ItemsSource в коде и XAML, выберите один или другой. В идеале вы должны использовать подход XAML и установить DataContext соответствующий параметр.

Как только вы примете это решение, вы можете вставить элемент в свой ComboBox , используя Items свойство.

 ComboBox box = new ComboBox();
box.Items.Insert(0, "My Item");
  

Лучшим подходом было бы использовать ICollectionView и просто сортировать данные, позволяя пользовательскому интерфейсу реагировать соответствующим образом. ItemsSource Затем ваш будет привязан к ICollectionView .

Ответ №2:

Вы можете легко вставить элемент в нужное расположение индекса в коллекции элементов выпадающего списка, используя следующий код.

          TextBlock t = new TextBlock();
        t.Text = "Select a video device"
        combo.Items.Insert(0, t);
  

Установка выбранного индекса настроит выпадающий список на отображение добавленного элемента по умолчанию:

    combo.SelectedIndex = 0;
  

или

вы можете сделать так..

    YourClassObject objSelectItem = new YourClassObject(); 
    objSelectItem.ID = "0"; 
    objSelectItem.Name = "Select Item"; 
    ComboBox1.Items.Insert(0,objSelectItem); 
  

я надеюсь, что это поможет вам…