MainWindow.xaml
<local:VideoPlayerControl SourceVideo="{Binding Test}"/>
<Button Command="{Binding command}" Width="100" Height="100"></Button>
MainViewModel.cs (: INotifyPropertyChanged)
private Uri _Test = new Uri(@"D:\Videos\1.mp4", UriKind.RelativeOrAbsolute);
public Uri Test
{
get { return _Test; }
set { _Test = value; OnPropertyChanged(); }
}
public ICommand command { get; }
public MainViewModel()
{
command = new RelayCommand(o => { Test = new Uri(@"D:\Videos\3.mp4", UriKind.RelativeOrAbsolute); });
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName]string prop = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
VideoPlayerControl.xaml
<UserControl.DataContext>
<local:VideoPlayerVM/>
</UserControl.DataContext>
<MediaElement Source="{Binding ElementName=UserControlmain, Path=SourceVideo}" LoadedBehavior="Pause" UnloadedBehavior="Manual"/>
VideoPlayerControl.xaml.cs
public static readonly DependencyProperty SourceVideoProperty = DependencyProperty.Register("SourceVideo", typeof(Uri), typeof(VideoPlayerControl), new PropertyMetadata(new Uri(@"D:\Videos\1.mp4", UriKind.RelativeOrAbsolute), OnSourceVideoChanged));
public Uri SourceVideo
{
get { return (Uri)GetValue(SourceVideoProperty); }
set { SetValue(SourceVideoProperty, value); MessageBox.Show(SourceVideo.ToString()); }
}
private static void OnSourceVideoChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
obj.SetValue(SourceVideoProperty, e.NewValue);
}
А VideoPlayerVM пустой
Проблема в том что при клике на кнопку по задумке Test меняется но путь к новому видео В MainWindow.xaml VideoPlayerControl устанавливается новый путь дальше через Binding к MediaElement устанавливается новый путь.
Вместо задуманного ничего не происходит и в выводе выводиться ошибка
System.Windows.Data Error: 40 : BindingExpression path error: 'Test' property not found on 'object' ''VideoPlayerVM' (HashCode=33624151)'. BindingExpression:Path=Test; DataItem='VideoPlayerVM' (HashCode=33624151); target element is 'VideoPlayerControl' (Name='UserControlmain'); target property is 'SourceVideo' (type 'Uri')
Как исправить эту проблему? Или подскажите пожалуйста способ легче и грамотней.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня такая ситуация,что нужно объяснить концепцию операторов break/continue(зачем они нужны и как работают),с первым все понятно,а со вторым возникают...
Мне необходимо удалить узел дерева, если у него имеются двое детейНаходил примеры удаления на других языках, но без понятия, как это реализовать...
Изучаю javascriptДобрался до ajax запросов