一些东西很明显,但我坚持在这里..的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