WPF: attached properties as an alternative to code behind