ここに投稿されたすべてのサンプルに同意しますが、WPF の「データ」の「テンプレート」モデルが、WinForms の純粋に密接にバインドされた UI + データ モデルとはまったく異なるため、少し混乱していると思います。
WinForm から WPF に移行するのは、学習曲線が大きくないためです。私自身、WPF でコーディングを開始するのに 2 年かかりました。
私の最善の推測では、最初に WPF の「論理ツリー」と「ビジュアル ツリー」の概念を調べる必要があります。これにより、WPF の UI 要素と非 UI 要素 (データ オブジェクト) が、C# を記述せずに XAML で簡単に接続できることがわかります。
そして、「トリガー」のようなもう 1 つの最も重要な概念。
作成する必要があるのは、IPropertyChanged インターフェイスを実装する 1 つの共通の基本クラスから派生したチェス アイテム (キング、ホース) となる「データ」オブジェクトだけであり、単純にバインドできる「CanBeKilled」、「IsPossibleTarget」などのプロパティを実装します。 ListBox が現在の選択を保持する ListBox の ItemTemplate で。
ListBox のアイテム パネル テンプレートは上記の例のいずれかであり、MouseOver では、上記のプロパティに従って色または境界線を強調表示できます。あとは、選択が変更されたときに、ListBox 内のすべてのアイテムのブール プロパティを更新するだけです。
編集部分を読んだところですが、WinForms と比較すると、適切に設計された WPF は WinForm と比較してコードの背後にあるコードが 90% 少ないため、WPF のコード ビハインドは異なって単純でなければならないと思います。