明らかなことですが、私はここで立ち往生しています..
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 エラー: BindingExpression パス エラー: 'RNPPayPlanLaneDistances' プロパティが 'MyViewModel' に見つかりません
したがって、「現在のアイテム」にバインドされていません。メインの DataContext にバインドしようとしています。なんで?そして、私は何を間違っていますか?