public PlayerControlViewModel(PlayersViewModel parent, Player player) { _parent = parent; _player = player; ViewModelHelper.BindNotifyChanged(_player, this, (sender, e) => RaisePropertyChanged(e.PropertyName)); ViewModelHelper.BindNotifyChanged(_player.RecordDescription, this, (sender, e) => RaisePropertyChanged(e.PropertyName)); // IsPlayingの状態が変わったら、PlayCommand/StopCommandの有効無効を切り替える Observable.FromEventPattern <PropertyChangedEventArgs>(_player, "PropertyChanged") .Where(e => e.EventArgs.PropertyName == "IsPlaying" || e.EventArgs.PropertyName == "IsPausing") .Subscribe(_ => { _PlayCommand.RaiseCanExecuteChanged(); _PauseCommand.RaiseCanExecuteChanged(); _StopCommand.RaiseCanExecuteChanged(); }); Observable.FromEventPattern <PropertyChangedEventArgs>(_player, "PropertyChanged") .Where(e => e.EventArgs.PropertyName == "IsAlive") .Subscribe(_ => _ReinitializeCommand.RaiseCanExecuteChanged()); Observable.FromEventPattern <ErrorInfoEventArgs>(_player, "ErrorRaised") .Subscribe(e => Messenger.Raise(new InformationMessage(e.EventArgs.Message, "エラー", "ShowError"))); }
public NamingServiceViewModel(NamingService namingService) { _namingService = namingService; ViewModelHelper.BindNotifyChanged( _namingService, this, (sender, e) => RaisePropertyChanged(e.PropertyName)); }