private async Task UpdateVMAsync()
		{
			var binder = DataContext as Binder;
			if (binder != null && !binder.IsDisposed)
			{
				if (_vm == null)
				{
					_vm = new BinderCoverVM(binder, _animationStarter);
					await _vm.OpenAsync().ConfigureAwait(false);
					RaisePropertyChanged_UI(nameof(VM));
				}
				else if (_vm.Binder != binder)
				{
					await DisposeVMAsync().ConfigureAwait(false);

					_vm = new BinderCoverVM(binder, _animationStarter);
					await _vm.OpenAsync().ConfigureAwait(false);
					RaisePropertyChanged_UI(nameof(VM));
				}
			}
			else
			{
				await DisposeVMAsync().ConfigureAwait(false);
			}
		}
		private async Task DisposeVMAsync()
		{
			var vm = _vm;
			if (vm != null)
			{
				await vm.CloseAsync();
				vm.Dispose();
				VM = null;
			}
		}