private void BindingViewModel() { Binding startBlockBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Position"), Converter = new MediaTimeSpanFormatter(FrameRate), ConverterParameter = ValueType }; Binding endBlockBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Duration"), Converter = new MediaTimeSpanFormatter(FrameRate), ConverterParameter = ValueType }; Binding sliderMaxValueBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Duration"), Converter = new MediaSliderValueFormatter(FrameRate, MediaPlayerViewModel.StartTimeOffset), ConverterParameter = ValueType }; System.Diagnostics.Debug.WriteLine(string.Format("Slider Max Value - {0}", _mediaSlider.Maximum)); MediaSliderValueFormatter mediaSliderValueFormatter = new MediaSliderValueFormatter(FrameRate, MediaPlayerViewModel.StartTimeOffset); mediaSliderValueFormatter.OnConvertBacked += ((formatter, timeSpan) => { if (MediaPlayer != null) { mediaPlayer.PlaybackSession.Position = timeSpan; } }); Binding sliderValueBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Position"), Converter = mediaSliderValueFormatter, Mode = BindingMode.TwoWay, ConverterParameter = ValueType }; _startPostionBlock.SetBinding(TextBlock.TextProperty, startBlockBinding); _endPostionBlock.SetBinding(TextBlock.TextProperty, endBlockBinding); _mediaSlider.SetBinding(Slider.MaximumProperty, sliderMaxValueBinding); _mediaSlider.SetBinding(Slider.ValueProperty, sliderValueBinding); }
private void BindingViewModel() { if (FrameMediaPlayer == null) { return; } Binding startBlockBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Position"), Converter = new MediaTimeSpanFormatter(FrameMediaPlayer.FrameRate), ConverterParameter = ValueType }; Binding endBlockBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Duration"), Converter = new MediaTimeSpanFormatter(FrameMediaPlayer.FrameRate), ConverterParameter = ValueType }; Binding sliderMaxValueBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Duration"), Converter = new MediaSliderValueFormatter(FrameMediaPlayer.FrameRate), ConverterParameter = ValueType }; MediaSliderValueFormatter mediaSliderValueFormatter = new MediaSliderValueFormatter(FrameMediaPlayer.FrameRate); mediaSliderValueFormatter.OnConvertBacked += ((formatter, timeSpan) => { if (MediaPlayer != null) { FrameMediaPlayer.CurrentFrame = timeSpan; } }); Binding sliderValueBinding = new Binding { Source = MediaPlayerViewModel, Path = new PropertyPath("Position"), Converter = mediaSliderValueFormatter, Mode = BindingMode.TwoWay, ConverterParameter = ValueType }; if (_startPostionBlock != null) { _startPostionBlock.SetBinding(TextBlock.TextProperty, startBlockBinding); } if (_endPostionBlock != null) { _endPostionBlock.SetBinding(TextBlock.TextProperty, endBlockBinding); } if (_mediaSlider != null) { _mediaSlider.SetBinding(Slider.MaximumProperty, sliderMaxValueBinding); _mediaSlider.SetBinding(Slider.ValueProperty, sliderValueBinding); } }