実際、コードをコード ビハインドに配置することは悪い習慣です。
実際、WPF 用にプログラミングする最も一般的な方法は、MVC の変形であるMVVM パターンを使用することです。
MVVM パターンでは、ビューには、WPF のトリガーとアニメーションを使用して簡単に実行できない UI 操作を実行するための XAML または非常に限られた量のコードしか含まれていません。
ビューへのデータは、データ バインディングを通じて ViewModel クラスによって提供されます。データ バインディングはフレームワーク自体によって提供され、View または ViewModel が他方を認識することなく、データをやり取りします。
ViewModel のプロパティに対する変更は、ViewModel が標準インターフェイス (INotifyPropertyChanged) を介して通知するたびに、フレームワークによって View に渡されます。
他の MVC パターンとの主な違いは、ViewModel が基になるビジネス モデルまたはデータ モデルの上にある抽象化であり、特にビューの作業を容易にするために形成されていることです。
MVVM の標準実装はありません。そのための最も人気のある 2 つのフレームワークは、MVVM LightとCaliburn.Micro (私の好み) です。MVVM Light はより軽量ですが、Caliburn.Micro はより独断的ですがより強力です。
補足として、MVVM の背後にあるアイデアは、Backbone.js や Knockout.js などのいくつかの Javascript フレームワークへの道を見つけました。