title: Is it just me, or is WPF a mess of databinding and custom IValueConverters?
body: <p>Seriously, it seems like every time I want to make my UI elements talk to each other, I end up coding a new, custom, IValueConverter :(. Someone tell me that I'm doing it wrong, please!</p>
  
  <p>Examples:</p>
  
  <ul>
  <li>I wanted a button to be enabled only if my textbox contained a valid URI. Great, time to code up a <code>UriIsValidConverter</code>!</li>
  <li>Oh oops, I also wanted to disable it while I'm processing something. I guess now I need to code up a <code>UriIsValidAndBoolIsFalseMultiConverter</code>!</li>
  <li>I want to display a list of files in a certain directory (specified by a textbox) inside a listbox. I guess I need a <code>DirectoryPathToFileList</code> converter!</li>
  <li>Oh hey, I want icons for each of those files in the listview. Time for a <code>FileInfoToBitmap</code> converter!</li>
  <li>I want my status to be red if my status-string contains "Error", and green otherwise. Yay, I get to code up a <code>StatusStringToSolidColorBrushConverter</code>!</li>
  </ul>
  
  <p>I'm really thinking this isn't that much better than the old Windows Forms method of just wiring up everything manually using <code>TextChanged</code> events (or whatever). Which I guess is still an option. Is that what people actually do, perhaps, and I'm trying too hard to make everything fit into the databinding paradigm?</p>
  
  <p>So yeah, please tell me if this is really how WPF coding is---or if I'm doing it wrong, and if so, what I <em>should</em> be doing.</p>