Question: The Password property of the `PasswordBox` element is not a `DependencyObject` so cannot be bound (there is no Text property). Capturing the password as the user types is possible by attaching a message to the `PasswordChanged` event, passing the source and grabbing it in the view model. However the lack of binding means there no opportunity to set `ValidatesOnDataErrors=True` so the `IDataErrorInfo` methods are never call meaning any error template is never activated. Anyone know how to resolve this? That is, is there another way to have an element invoke a call to the view model for the `IDataErrorInfo` indexer?

One legitimate question might be why would you want to validate a password. 

Two reasons: 

1) To let the user know the password is required.

2) to let the user know if the password and password confirmation are the same.

Answer: 
You should simply be using this singleton when trying to use user defaults

```
[NSUserDefaults standardUserDefaults];

```
`I'm initialising an object of the class and use it in the local scope.` 

It is not required at all. If you want to save something in UserDefaults, cocoa provides you a shared instance / Singleton of that.

Whenever you need to update your saved value, you call `[NSUserDefaults standardUserDefaults]` and use it, and only one instance will be saved for you.

```
[[NSUserDefaults standardUserDefaults] setObject:yourObject forKey:@"yourKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

```