我正在使用WP7(Mango)Silverlight应用程序,我有一个ListBox(显示公司),它由服务请求填充。我还有一个Profile对象,从另一个服务请求加载
遗憾的是,我无法控制服务API,因此配置文件没有int CompanyId(我可以绑定ListBox的SelectedValue),但它有另一个公司实例。 />
这会导致问题Profile.Company.Equals(Companies.Single(o=>o.Id == Profile.Company.Id)) == false
,因此当我绑定到ListBox(<ListBox ItemsSource="{Binding Companies}" SelectedItem="{Binding Profile.Company, Mode=TwoWay}" DisplayMemberPath="Name" />
)时,最初没有选择任何内容。
我认为我通过让公司实施IEquatable<Company>
并通过比较ID来实现它来解决这个问题。 Binding引擎在我的集合上调用IndexOf(selectedItem),该集合调用Company.Equals,它正确地为所需的项返回true。
但ListBox中仍未选择任何内容。
怎么了?