我想在代码中创建一个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
?或者我是否必须创建仅包含名称的第二个集合,然后使用我的原始集合来获取其他属性?
答案 0 :(得分:1)
您需要指定一个DataTemplate来帮助呈现AudioCaptureDevice对象。您可以在代码here中执行此操作。您将使用该DataTemplate并将其分配给ComboBox的ItemTemplate属性。