一些東西很明顯,但我堅持在這裏..的DataGrid RowDetailsTemplate結合的外觀在主數據上下文
我想顯示DataGrid中的DataGrid,這裏是XAML:
<sdk:DataGrid
ItemsSource="{Binding RNPPayPlanLanes}"
RowDetailsVisibilityMode="Visible">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="From region" Binding="{Binding FromRegionKey, Mode=TwoWay}" />
<sdk:DataGridTextColumn Header="To region" Binding="{Binding ToRegionKey, Mode=TwoWay}" />
</sdk:DataGrid.Columns>
<sdk:DataGrid.RowDetailsTemplate>
<DataTemplate>
<sdk:DataGrid
HorizontalAlignment="Right"
ItemsSource="{Binding RNPPayPlanLaneDistances}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="UpToDistance" Binding="{Binding UpToDistance, Mode=TwoWay}" />
<sdk:DataGridTextColumn Header="PayPerDistanceUnitAmount" Binding="{Binding PayPerDistanceUnitAmount, Mode=TwoWay}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</DataTemplate>
</sdk:DataGrid.RowDetailsTemplate>
</sdk:DataGrid>
MyViewModel包含RNPPayPlanLane
集合對象,我看到他們正確綁定。 VM的
僞代碼:
class MyViewModel
{
public List<RNPPayPlanLane> RNPPayPlanLanes { get; set; }
}
class RNPPayPlanLane
{
public List<RNPPayPlanLaneDistance> RNPPayPlanLaneDistances { get; set; }
}
class RNPPayPlanLaneDistance {}
RNPPayPlanLane
具有集合屬性 'RNPPayPlanLaneDistances' 這是我想要使用嵌套網格。這不起作用。我得到錯誤:
System.Windows.Data Error: BindingExpression path error: 'RNPPayPlanLaneDistances' property not found on 'MyViewModel'
因此,它不綁定到「當前項目」,它試圖綁定到我的主要DataContext。爲什麼?我做錯了什麼?
我增加了更多的代碼。不,這不像你描述的。我預計RNPPayPlanLaneDistances是一個財產,但顯然錯誤說,網格嵌套眺望VM(主要DataContext的,而不是對目前的項目) – katit 2013-02-21 17:56:08
看起來你是對的。它應該首先查看自己的數據上下文。 – 2013-02-22 07:17:34
對於telerik,它按預期工作http://www.telerik.com/help/silverlight/radgridview-row-details-template.html – 2013-02-22 07:19:59