(WPF)将两个类绑定到控件

时间:2009-05-20 21:42:45

标签: wpf data-binding

我有两个视图模型。一个显示IP地址集合,另一个显示具有多个参数的对象集合。其中一个参数是IPAddress。所以,我有另一个面板绑定到第二个对象的属性。我想组合框将ItemSource设置为第一个对象,但选定的项目绑定到第二个对象。但是,我似乎只能在代码后面的控件上设置一个datacontext。有没有办法解决?如果可能的话,我更愿意在代码背后执行此操作(我发现xaml编程最好是非理想的),但我会采取任何措施。

3 个答案:

答案 0 :(得分:1)

对于ComboBox,将IPAddresses的集合绑定到ItemsSource属性,并将ComboBox的SelectedItem绑定到“众多属性对象”集合的SelectedItem的IPAddress属性。

答案 1 :(得分:0)

查看Bindings的Source property。它基本上是一个特定绑定的DataContext。它应该使你想要做的事情非常简单,尤其是在代码背后。

答案 2 :(得分:0)

如果我对您的对象(包括名称)有更好的描述,这将更容易回答。但是听起来我觉得你应该用ipaddress作为键,第二个对象作为值来制作字典。

如果你可以这样做,那么你可以用这样的代码绑定它:

comboBox.ItemsSource = dictionary;
comboBox.DisplayMemberPath = "Key";
comboBox.SelectedValuePath = "Value";

这假设您对集合中的每个IPAddress只有一个“第二个对象”。根据您的描述,这听起来是对的。