2011-07-18 70 views
0

我使用Telerik的框架,在Silverlight中創建與子元素RadGridView 4.Silverlight的模板數據綁定問題

<telerikGrid:RadGridView x:Name="itemsGrid" Grid.Row="1" AutoGenerateColumns="{Binding AutoGenerateColumn, Mode=TwoWay}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ItemsSource="{Binding Items, Mode=TwoWay}" CanUserInsertRows="True" ShowInsertRow="True" CanUserDeleteRows="True">    
      <telerikGrid:RadGridView.Columns> 
       <telerikGrid:GridViewToggleRowDetailsColumn /> 

       <telerikGrid:GridViewDataColumn Header="Item 1" DataMemberBinding="{Binding Item1}" UniqueName="Item1" /> 
       <telerikGrid:GridViewComboBoxColumn Header="Group" UniqueName="Group" 
                ItemsSource="{Binding Groups.Items}" SelectedValueMemberPath="GroupId" DisplayMemberPath="GroupNames" /> 
       <telerikGrid:GridViewComboBoxColumn Header="Supplier" UniqueName="Supplier" 
                ItemsSource="{Binding Suppliers}" SelectedValueMemberPath="CompanyS" DisplayMemberPath="CompanyName" /> 
       <telerikGrid:GridViewDataColumn Header="Not in use" DataMemberBinding="{Binding inUse}" UniqueName="inUse" /> 
</telerikGrid:RadGridView.Columns> 

      <telerikGrid:RadGridView.ChildTableDefinitions> 
       <telerikGrid:GridViewTableDefinition /> 
      </telerikGrid:RadGridView.ChildTableDefinitions> 

      <telerikGrid:RadGridView.HierarchyChildTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <telerikGrid:RadGridView x:Name="childGrild" Grid.Row="1" AutoGenerateColumns="False" ItemsSource="{Binding ChildList}" CanUserInsertRows="True" CanUserDeleteRows="True" IsReadOnly="False" ShowInsertRow="True" ShowGroupPanel="False"> 
          <telerikGrid:RadGridView.Columns> 
               <telerikGrid:GridViewDataColumn Header="Part S" DataMemberBinding="{Binding PartS}" UniqueName="PartS" /> 

           <telerikGrid:GridViewComboBoxColumn Header="Tools" ItemsSource="{Binding ElementName=control, Path=DataContext.Tools}" DataMemberBinding="{Binding PartS}" SelectedValueMemberPath="Id" DisplayMemberPath="Name" /> 


          </telerikGrid:RadGridView.Columns> 

         </telerikGrid:RadGridView> 

        </StackPanel> 
       </DataTemplate> 
      </telerikGrid:RadGridView.HierarchyChildTemplate> 

     </telerikGrid:RadGridView> 

正如你可以看到,在網格中的每一行有一個孩子的GridView,問題是但我不能在GridView中顯示任何數據,它總是空的Combobx。如果我將它移動到子tempate之外,它會正常工作,並顯示工具列表中的項目。 要訪問列表,這是控件datacontext屬性,我給了控件一個名稱(控制),並使用Path = DataContex.Tools,我讀的應該工作。

任何人都知道爲什麼ComboBox沒有填充數據?我已經檢查過所有的屬性名稱是否正確,並確實有數據顯示。

回答

2

RadGridView和ElementName不能很好地混合。在你的情況下,找不到'control'元素。您可以使用鏈接中顯示的DataContextProxy。它解決了我曾經有過類似的問題。

+0

啊,感謝您告訴我:> – randoms

+0

在Silverlight 5發佈之前,Dan的DataContextProxy是處理這些模板/綁定問題的天賜之物。 :) –