public void OpenDocument(IDocumentViewModel viewModel) { Argument.IsNotNull("viewModel", viewModel); var docViewModel = (viewModel as DocumentBaseViewModel); docViewModel.OnBeforeOpen(); //see comments up.not using Collection.Contains because it using Equals to compare if (!Documents.Contains_CompareByReference <IDocumentViewModel>(viewModel)) { Documents.Add(viewModel); } docViewModel.IsAliveClosed = false; viewModel.IsSelected = true; }