Отображение ComboBox AudioCaptureDevices - PullRequest
0 голосов
/ 22 марта 2011

Я хочу создать элемент управления ComboBox в коде (без XAML), который отображает список доступных AudioCaptureDevice s.

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 AudioCaptureDevice.

Есть ли простой способ конвертировать мою коллекцию, чтобы она отображала дружественные имена, но все еще содержала AudioCaptureDevice s? Или мне нужно будет создать вторую коллекцию только с именами, а затем взять мою оригинальную коллекцию, чтобы получить другие свойства?

1 Ответ

1 голос
/ 22 марта 2011

Вам необходимо указать DataTemplate, чтобы помочь представить объекты AudioCaptureDevice.Вы можете сделать это в коде, как показано здесь .Вы должны использовать этот DataTemplate и назначить его свойству ItemTemplate ComboBox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...