我正在构建一个WPF订单管理器应用程序,我遇到了一个我不确定如何处理的情况。
我想重新绑定每个订单的采购订单请求列表,但我只想在应用程序中看到采购订单请求面板时执行此操作(他们双击订单以显示采购订单列表要求)。我的问题是,采购订单请求是订单列表框的每个列表项内的列表框,我找不到遍历列表项中的控件的方法(我只能迭代实际对象,例如OrderInfo)。
我想做的是
OrderListBox.FindName("PurchaseOrderListBox")
crm的示例,其中2个订单显示采购订单请求,1个订单未显示任何 alt text http://www.readyflowers.co.uk/images/crm-datatemplate.png
我希望实现的结果 alt text http://www.readyflowers.co.uk/images/crm-datatemplate-saved.png
答案 0 :(得分:1)
我不确定我理解你的问题......
但感觉就像你正试图通过UI层次结构找到一些东西(ala WinForms) - 这就像在WPF中逆流而行。它会让你累得真快...
查看有关ViewModel模式的文章。我读过的其中一个是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