0

私は自分の WPF プロジェクトで Binding を使い始めていますが、実際にはプレゼンテーション側 (XAML) のいくつかについて混乱しています。

TreeViewだから私はカテゴリのリストを入力したいと思います。HierarchicalDataTemplateカテゴリ インスタンスのリストの右の書き方を知っています。

<HierarchicalDataTemplate ItemsSource="{Binding Path=ChildrenCategories}" DataType="{x:Type src:Category}">
      <TextBlock Text="{Binding Path=Name}"></TextBlock>
</HierarchicalDataTemplate>

しかし、今私が知らないのは、どこからリストを取得するかです。私はここに2つの解決策があります:

  1. Library Singleton適切な樹木を返すクラス を取得したObjectDataProviderので、xaml で Library.Instance.Categories メソッドを呼び出す を使用する必要があります。(これは、コントローラーを UI から完全に分離する必要があることを意味します)。

  2. 私はProperty ListCategories 自分のページにinteractionLogic(OpenUnit.xaml.cs)を取得し、ツリーをバインドしました。

xaml.cs ファイルの目的がよくわかりません。何のために作成されているのですか? 通常、プロパティを保存する (そしてコントローラーとして機能する) ために使用されますか? それとも、単に UI のバックエンド (たとえば、UI から値を取得する) に使用されますか?

xaml.cs ファイルがコントローラーとして使用されている場合、データをそれにバインドするにはどうすればよいですか。多くの解決策を試しましたが成功しませんでした。成功したのは静的バインディングを使用した場合だけでした。

WPF の UI とロジック バインディングに関するコメントや推奨事項をいただければ幸いです。混乱が少なくなることを願っています。

前もって感謝します、

ボリス

4

1 に答える 1

0

この素晴らしい記事を読んだ後、混乱が少し減りました :

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

この記事は、Model View ViewController パターンと、WPF がそれをどのように統合するかについてです。したがって、ここでは xaml.cs ファイルを ViewController として使用し、プロパティを保持する必要があるようです。ビューとデータを混在させることは良い習慣ではないため、実際には理にかなっています。デザイナーが完全に独立した作業を行う必要があることを望んでいます。

また、解決策 2) については、データ コンテキストを現在のファイルに設定すると可能です。

于 2009-08-20T00:06:45.733 に答える