显示AudioCaptureDevices的ComboBox

时间:2011-03-22 10:34:25

标签: c# silverlight collections combobox

我想在代码中创建一个ComboBox控件(无XAML),显示可用的AudioCaptureDevice列表。

ReadOnlyCollection<AudioCaptureDevice> audioDevices;
audioDevices = CaptureDeviceConfiguration.GetAvailableAudioCaptureDevices();

StackPanel sp = new StackPanel();
ComboBox cbxAudioDevices = new ComboBox();
cbxAudioDevices.ItemsSource = audioDevices;
sp.Children.Add(cbxAudioDevices);
this.RootVisual = sp;

但是,不会显示外观漂亮的名称,而只显示名为 System.Windows.Media.AudioCaptureDevice 的条目。 可以通过FriendlyName的{​​{1}}属性获取漂亮的名称。

是否有一种简单的方法来转换我的收藏,以便它显示友好的名称,但仍然会保留AudioCaptureDevice?或者我是否必须创建仅包含名称的第二个集合,然后使用我的原始集合来获取其他属性?

1 个答案:

答案 0 :(得分:1)

您需要指定一个DataTemplate来帮助呈现AudioCaptureDevice对象。您可以在代码here中执行此操作。您将使用该DataTemplate并将其分配给ComboBox的ItemTemplate属性。