将项添加到Silverlight ComboBox

时间:2011-10-25 21:13:40

标签: c# silverlight-4.0 combobox

我有一个Silverlight个应用,其中ComboBoxVideoCaptureDevice填充。

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>

2 个答案:

答案 0 :(得分:1)

您在后面的代码和XAML中明确设置ItemsSource,选择其中一个。理想情况下,您将采用XAML方法并适当地设置DataContext

做出决定后,您可以使用ComboBox属性在Items内插入一个项目。

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

更好的方法是利用ICollectionView并简单地对数据进行排序,让UI做出相应的响应。然后,您的ItemsSource将绑定到ICollectionView

答案 1 :(得分:0)

您可以使用以下代码轻松地在ComboBox的Items集合中的所需索引位置插入项目。

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

设置所选索引会将ComboBox设置为默认显示添加的项目:

   combo.SelectedIndex = 0;

你可以这样做..

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

我希望它会帮助你......