2013-01-11 50 views
0

我刚刚学习WPF (and mvvm),我遇到了一个问题,我不能google通过。双数据绑定

2 ObservableCollections - 练习和图表(该项目即将在健身房trackig进度)

练习(ID,姓名

(ExerciseId,ExerciseName, Id,...)

现在在我想填写图表的窗口中,我有一个listbox一些labels_grid _和ItemTemplate一个combobox

Listbox绑定到Chart集合。
Combobox显示练习列表,所以我将它绑定到练习集。

问题:

  1. 我可以指定的XAML组合框电流值应相同Chart.Exercise?
  2. 如何在XAML中指定绑定,以便将组合框中的运动集合元素分配给Chart.Exercise?
+0

你怎么会在这吗?运气好的话? – PGallagher

回答

0

你可能可以通过元素绑定和转换器实现这一点......但是,在ViewModel中实现这一点会更简单。

您的ViewModel中将有四个属性。

  • 属性1:运动可观察集合 - 绑定到您的组合框的ItemSource(ExerciseItems)
  • 房产2:运动选定的项目 - 绑定到您的组合框的SelectedItem(ExerciseSelectedItem)
  • 房产3:图观察集合 - 绑定你的列表框(与ChartItem)
  • 房产4:图中选择项目 - 绑定到你的列表框的SelectedItem(ChartSelectedItem)

你会设置你的组合音响B-在使用Linq的情况下,使用列表框选择项目属性中的选定项目与列表框选定项目练习ID相同;

Public Property ChartSelectedItem As ChartItem 
Get 
    Return _ChartSelectedItem 
End Get 
Set(value As ChartItem) 
    If value <> _ChartSelectedItem Then 
     _ChartSelectedItem = value 

     ExcersiseSelectedItem = (From ExcersiseItemsList in ExcersiseItems Where ExcersiseItemsList.ID = value.ExcersiseID).FirstOrDefault 

     OnPropertyChanged("ChartSelectedItem") 

    End if 
End Set 
End Property 

希望帮助...