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];

```
A nice way to do user defaults is to create your own `PFXDefaults` class (replace `PFX` with your favorite prefix) which has methods for accessing and mutating the values that you care about. This allows you to write

```
[[PFXDefaults sharedDefaults] setUserName:@"Nate"];

```

rather than

```
[[NSUserDefaults] setObject:@"Nate" forKey:@"userName"];

```

It is often convenient to make this class a prefix, or, barring that, a visible (declared in the `.h` file) property on your app delegate.

The `PFXDefaults` interface would look something like

```
@interface PFXDefaults : NSObject

@property (nonatomic) NSString *userName;

@end

```

and the implementation would look something like

```
static NSString * const PFXDefaultUserNameKey = @"PFXDefaultUserNameKey";

@implementation PFXDefaults

- (void)setUserAge:(NSString *)userName
{
    [[NSUserDefaults standardUserDefaults] setObject:userName forKey:PFXDefaultUserNameKey];
}

- (NSInteger)userAge
{
    return [[NSUserDefaults standardUserDefaults] stringForKey:PFXDefaultUserNameKey];
}

@end

```