在我的xaml中,左侧有一个CustomersBox列表框。选择客户后,右侧将显示绑定文本框或组合框的客户信息(名称,地址,电话,类型等)。
在右侧,Type是一个组合框,其中包含SelectionChanged事件,在更改值时填充某些内容。问题是每当我在左侧的ListBox中选择不同的客户时,Type SelectionChanged事件也会启动并填充值。如何检测并防止这种情况发生?谢谢!
答案 0 :(得分:0)
它听起来不像一个复杂的问题,但它没有得到很好的描述。你能举个更好的例子吗?
您使用的是MVVM模式吗?我想你可以将视图分解为多个视图和视图模型,例如“CustomersListViewModel”和“CustomerDetailsViewModel”。
您可以将ListBox绑定到Customers集合,并将“SelectItem”设置为名为“SelectedCustomer”的属性(在CustomersListViewModel中),然后在CustomersListBox中更改选择时,它将触发一个名为“SelectedCustomerChanged”的方法“或类似的东西本质上是新的”CustomersDetailsViewModel“(将选定的客户作为参数传递),这将显示新的CustomerDetails。
听起来我觉得你有一个单一的视图正在交换一个客户,这会粗暴地点燃你的组合框中的选择变更事件,从而导致你的问题。 客户
示例:
<强> CustomersListViewModel 强>
CustomerDetailViewModel (接受构造函数参数中的Customer对象)
“SelectedCustomerChanged”方法看起来像这样......
public void SelectedCustomerChanged()
{
this.CustomerDetailViewModel = new CustomerDetailViewModel(this.SelectedCustomer)
// Replace this with some activation of view code?
this.ActivateViewModel(this.CustomerDetailViewModel)
}
那是我的方法吗?
谢谢,希望这有帮助。
本