0

MVVM パターンとバインディングを使用して、Windows フォームから WPF へのコード リファクタリングに取り組んでいます。

私のWindowsフォームコード:

searchCriteriaListBox.Items.Add("Cat");

私のWPF XAML:

<ListBox Height="288" HorizontalAlignment="Left" Margin="18,206,0,0" VerticalAlignment="Top" Width="1042" />

WPF バインディングを使用して同じ「追加」アクションを実装するにはどうすればよいですか?

4

2 に答える 2

3

Page/Window/UserControl (ルート レベルにあるもの) の DataContext を ViewModel に設定します。

ItemsViewModel でプロパティを作成します。

searchCriteriaListBox のバインディングとして以下を使用します

 {Binding Items, Mode=TwoWay}

<ListBox  ItemsSource="{Binding Items, Mode=TwoWay}" Height="288" HorizontalAlignment="Left" Margin="18,206,0,0" VerticalAlignment="Top" Width="1042" />

ビュー モデルに、AddItemCommand を配置します。

AddItemCommand.Execute で、項目を Items コレクションに追加します。

再利用可能なアイテムのビットにはMVVM Lightを使用し、 Model-View-ViewModel デザイン パターンを使用して WPF アプリを読み取ります

于 2012-06-27T14:17:23.340 に答える
2

Listbox を監視可能なコレクションにバインドし、このコレクションからアイテムを追加/削除して更新するだけです。xaml のボックスにデータを追加する必要はありません。

このビデオを見てください。mvvm を学習するときに非常に役立つことがわかりました - http://www.youtube.com/watch?v=tKfpvs7ZIyo

于 2012-06-28T14:32:01.760 に答える