私は現在Silverlight4を使用しており、MVVMパターンに従っています。次のように、ログインボックスをViewModelにバインドしています。
<PasswordBox Password="{Binding Path=Password, Mode=TwoWay}" />
その後、ViewModelのPropertyChangedイベントをリッスンするコマンドにバインドされたボタンがあり、データバインディングの1つでデータが更新されると、ログインボタンを有効にするのに十分なデータがあるかどうかがチェックされます。
ただし、PropertyChangedイベントは、ユーザーがいずれかのコントロールからフォーカスを変更した場合にのみ発生します。ログインボタンができるだけ早く有効になるように、キーストロークごとにモデルを更新する必要があります。