0

明らかなことですが、私はここで立ち往生しています..

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 にバインドしようとしています。なんで?そして、私は何を間違っていますか?

4

1 に答える 1

0

私はテレリックの階層グリッドを使用しています。階層を定義する必要があります。RowDetailsTemplate は使用しませんでしたが、プロパティが見つからないというエラーが表示されます。

私が理解しているように

LanesDataには 1 つのRNPPayPlanLane 1-1があります

RNPPayPlanLaneには、多くのRNPPayPlanLaneDistances 1 ~ N (マスター詳細) があります。

そうあるべきかのように、

       ItemsSource="{Binding RNPPayPlanLane.RNPPayPlanLaneDistances}">
于 2013-02-21T08:18:21.313 に答える