MVVM Silverlight 4父子视图模型

| 我有一个包含数字组合框的页面。每个组合框都绑定到一个单独的视图模型。我如何从组合框中获取所有值并将它们传递给另一个视图模型(使用mvvm)? 我已经简要地研究过使用组合框视图模型的属性创建一个新的视图模型,但是绑定似乎不起作用。 有任何想法吗? 谢谢,格雷姆     
已邀请:
        如果我对您的理解正确,则应将父级绑定到组合框的SelectedItem。我担心您的SelectedItem已经绑定到ComboBox的视图模型,但这通常不是一个好主意。 ViewModels仅应在控件中私下使用。因此,例如,在您的组合框中,您可能想创建一个包含该组合框的新用户控件。这样,您可以在用户控件中处理所有\'child \'视图模型内容,并且新用户控件的使用者可以不受约束地绑定并与其选择的任何元素进行交互。     
        如果我正确地理解您的意思,您有用单独的ViewModel填充的ComboBox(使用
ItemsSource
),因此要从中获取值,应将其
SelectedItem
属性绑定到一个ViewModel。 为了说明我的意思,假设我们有2个ViewModel:
public class ItemOneViewModel
{
 public Name { get; set; }
}

public class ItemTwoViewModel
{
 public Name { get; set; }
}
和一个常见的ViewModel:
public class MainViewModel
{
 public ObservableCollection<ItemOneViewModel> ComboBox1Items { get; set; }
 public ObservableCollection<ItemTwoViewModel> ComboBox2Items { get; set; }

 public ItemOneViewModel SelectedItemFromComboBox1 { get; set; }
 public ItemTwoViewModel SelectedItemFromComboBox2 { get; set; }
}
然后可以绑定:
ComboBox1Items
ItemsSource
ComboBox1
SelectedItemFromComboBox1
SelectedItem
中的
ComboBox1
ComboBox2Items
ItemsSource
ComboBox2
SelectedItemFromComboBox2
SelectedItem
中的
ComboBox2
借助
MainViewModel
中的设置,您可以访问组合框中的选定值。 我希望你能从我的解释中了解一些;) 上面的代码当然是简化版本-所有ViewModel都应该实现INotifyPropertyChanged接口。     

要回复问题请先登录注册