2010-11-09 124 views
1

假設我有一個用戶控件,其datacontext綁定到一個虛擬機。該虛擬機具有MyList列表的屬性。如何獲取控件父DataContext元素元素數據綁定?

這裏面的用戶控件我有一個組合框,我想設置以下類型的XAML

<Grid x:Name="LayoutRoot" Background="White"> 
      <StackPanel HorizontalAlignment="Stretch"> 
       <sdk:DataGrid ItemsSource="{Binding YourList}" IsReadOnly="True" AutoGenerateColumns="False" > 
        <sdk:DataGrid.Columns>      
         <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}" /> 
         <!-- ...... --> 
         <sdk:DataGridTemplateColumn Header="User" > 
          <sdk:DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <ComboBox ItemsSource="{Binding ElementName=LayoutRoot, Path=DataContext.MyList}" DisplayMemberPath="Value" SelectedValuePath="Key" SelectedValue="{Binding UserID}" ></ComboBox> 
           </DataTemplate> 
          </sdk:DataGridTemplateColumn.CellTemplate> 
         </sdk:DataGridTemplateColumn> 

        </sdk:DataGrid.Columns> 
       </sdk:DataGrid> 
      </StackPanel> 
    </Grid> 

,但它無法正常工作。

如何解決此問題?

+0

你爲什麼試圖在這裏做Element to Element綁定?你不只是試圖將這個ComboBox的源碼綁定到ViewModel上的MyList嗎?如果是這樣,你應該能夠做到這一點:ItemsSource =「{Binding MyList}」也許我不明白你的意思是'父',你能顯示更多的代碼嗎? – JSprang 2010-11-09 19:42:06

回答

1

這工作形成了我。這是DataGrid內的ComboBox的ItemSource:

 ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=sdk:DataGrid}, 
Path=DataContext.Teams}">