1

私は WPF オーダー マネージャー アプリを構築していますが、対処方法がわからない状況に遭遇しました。

注文ごとに注文書リクエストのリストを再バインドしたいのですが、アプリに注文書リクエスト パネルが表示されている場合にのみ実行したいと思います (注文をダブルクリックして、注文書リクエストのリストを表示します)。私が抱えている問題は、発注書リクエストが Order リストボックスの各リスト項目内のリストボックスであり、リスト項目内のコントロールをトラバースする方法が見つからないことです (OrderInfo などの実際のオブジェクトを反復処理することしかできません)。

私がやりたいことは

OrderListBox.FindName("PurchaseOrderListBox")

注文書リクエストを表示する 2 つの注文と 代替テキストを表示しない 1 つの注文を含む CRM の例 http://www.readyflowers.co.uk/images/crm-datatemplate.png

代替テキストを達成したい結果http://www.readyflowers.co.uk/images/crm-datatemplate-saved.png

4

1 に答える 1

1

私はあなたの問題を理解しているかどうかわかりません....

しかし、UI 階層をハックして何か (ala WinForms) を見つけようとしているように感じます。これは、WPF の流れに逆らって泳いでいるようなものです。すぐに疲れてしまいます..

ViewModel パターンに関する記事を探してください。私が読んだものの 1 つは、Dan Crevierによるものです。基本的な考え方は、UI 用の Model オブジェクトを用意することです。UI (データ) は、ViewModel によって公開されるプロパティにバインドされます。これで、UI 関連のすべてのロジックを ViewModel に入れることができます。ViewModel は、セッション状態の変更の propertyChanged 通知を介して通知されます。したがって、フィールドが変更されると、ViewModel に通知されます。ViewModel は関連するプロパティを更新し、それに応じて UI が更新されます。

この場合ViewModel.OrderInfo.Find_PO_with_X(searchCriteria)、正しいオブジェクトに到達するのに役立ちます。見つかった場合は、ViewModel.ShowGreenLight = trueこのプロパティにバインドされた UI コントロールが緑色に変わります。

HTH

于 2009-04-23T08:20:10.880 に答える