Model-View-ViewModelパターンを使用してすべての WPF を実行します。そこへのリンクを 1 つ提供しましたが、Google が負荷を与えてくれます。MVVM は WPF の標準パターンのようです。 このプロジェクトはおそらく必要以上に複雑ですが、よく書かれており、MVVM の使用法を実感できます。
基本的に、データのモデルを作成します。この場合、おそらく Id、UserID、および Description プロパティを持つ単純なクラス (ToDoItem と呼びます) を作成します。お好みのメカニズムを使用して、データベースからこれらのコレクションを取得してください。SQL、Entity Framework、標準クエリなどにリンクします。
次に、ViewModel を取得します。モデルのインスタンスごとに ViewModel のインスタンスを取得します。VM には、M への参照と、それへの「転送」プロパティがあります。ViewModel は、モデルを操作するために使用するものです。
次に、View を作成します。これが UI です。ビューの DataContext を ViewModel に設定すると、バインディングが自動的に ViewModel にバインドされます。あなたのビューは、あなたが見ることができるものになるだけです。すべての作業は ViewModel で行われます。これは、テストが非常に簡単であることを意味します。
そのため、ビューのボタンをクリックすると、バインディングはモデルを操作するビューモデルのコマンドにこれを渡します。
UI も ViewModel を持つ View です。そのため、UI VM はデータベースからモデルのコレクションをロードし、それらを ObservableCollection に貼り付ける場合があります。ListBox アイテム コレクションは、この ObservableCollection にバインドされます。
このような記事ですべてを説明するのは難しいです。いくつかの記事を読んで、あなたの考えを見てください。私もこれにはまだ慣れていませんが、MVVM について読んだことは報われたと思います。