public void UpdateSources() { Displays.Clear(); Displays.AddRange(ScreenHelper.GetVideoSources(true)); var propVideoViewModel = ((PropertyVideoViewModel)this.Property); var streamModel = propVideoViewModel.Parent.MediaStreamer; var deviceId = streamModel.PropertyVideo.DeviceId; propVideoViewModel.Display = Displays.FirstOrDefault(d => d.DeviceId == deviceId) ?? Displays.FirstOrDefault(); }
public VideoSettingsViewModel(PropertyVideoViewModel property, TrackableViewModel parent) : base(property, parent) { this.parent.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(IsChanged)) { RaisePropertyChanged(() => IsChanged); } }; UpdateVideoSourcesCommand = new Prism.Commands.DelegateCommand(UpdateSources); //Displays.AddRange(ScreenHelper.GetDisplayItems()); ScreenCaptures.AddRange(ScreenHelper.SupportedCaptures); var propVideoViewModel = ((PropertyVideoViewModel)this.Property); var streamModel = propVideoViewModel.Parent.MediaStreamer; var videoModel = streamModel.PropertyVideo; var captType = videoModel.CaptType; propVideoViewModel.CaptureType = ScreenCaptures.FirstOrDefault(c => c.CaptType == captType) ?? ScreenCaptures.FirstOrDefault(); Displays.AddRange(ScreenHelper.GetVideoSources()); var deviceId = videoModel.DeviceId; if (string.IsNullOrEmpty(deviceId)) {// если девайс не задан то берем первый попавшийся propVideoViewModel.Display = Displays.FirstOrDefault(); } else {// если девайс есть в конфиге, то используем его даже если его нет в списке // чтобы пользователь поменял его вручную propVideoViewModel.Display = Displays.FirstOrDefault(d => d.DeviceId == deviceId); } // ((PropertyVideoViewModel)this.Property).Display = Displays.FirstOrDefault(d => d.DeviceId == deviceId) ?? Displays.FirstOrDefault(); }