Wpf 从集合绑定到ViewModel属性的数据绑定?
我会尽量使这句话简明扼要Wpf 从集合绑定到ViewModel属性的数据绑定?,wpf,silverlight,xaml,Wpf,Silverlight,Xaml,我会尽量使这句话简明扼要 我有一个ViewModel和一组模型(即飞机) 我有一个绑定到ViewModel的Xaml页面 Xaml页面有一个绑定到Airplanes集合的DataGrid 对于其中一个DataGrid列模板,我希望它显示“EngineComponents”列表,其中EngineComponents是在ViewModel中定义的项目集合。 关键在于: EngineComponents是基本上静态的零件集合。数据网格中的所有Airplance行应显示相同的EngineCompon
- 我有一个ViewModel和一组模型(即飞机)
- 我有一个绑定到ViewModel的Xaml页面
- Xaml页面有一个绑定到Airplanes集合的DataGrid
- 对于其中一个DataGrid列模板,我希望它显示“EngineComponents”列表,其中EngineComponents是在ViewModel中定义的项目集合。
如何在不编写额外代码(事件处理程序等)的情况下解决EngineComponents绑定问题?您需要使用相对资源。在我的示例中,我将使用ListView,但它们的思想是相同的
<UserControl ... DataContext="{Binding ...}">
<ListView ItemsSource="{Binding Airplanes}">
<ListView.View>
<GridView>
<GridViewColumn Header="Drawing No." Width="80">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.AvailableAirplanes,RelativeSource={RelativeSource AncestorType=UserControl}}"
SelectedItem="{Binding Airplane}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</UserControl>