2014-02-18 174 views
-1

我會盡量保持這一點儘可能簡潔。數據綁定到來自集合綁定的ViewModel屬性?

  • 我有一個ViewModel與模型集合(即飛機)。
  • 我有一個綁定到ViewModel的Xaml頁面。
  • Xaml頁面有一個綁定到飛機集合的DataGrid。

  • 對於其中一個DataGrid列模板,我希望它顯示「EngineComponents」列表,其中EngineComponents是ViewModel中定義的項目的集合。

美中不足的是這樣的: 的EngineComponents是部分即本質上是靜態的集合。 DataGrid中的所有Airplance行應顯示相同的EngineComponents列表。

飛機

如何解決這個EngineComponents結合的問題,而無需編寫額外的代碼(事件處理等)?

回答

1

您需要使用RelativeSource。我將在我的例子中使用一個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> 
相關問題