簡體   English   中英

DataGrid RowDetailsTemplate綁定在主數據上下文中查找

[英]DataGrid RowDetailsTemplate binding looks in main Data Context

明顯的東西,但是我被困在這里。

我想在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路徑錯誤:在“ MyViewModel”上找不到“ RNPPayPlanLaneDistances”屬性

因此,它沒有綁定到“當前項目”,而是試圖綁定到我的主DataContext。 為什么? 我該怎么辦?

我使用telerik的分層網格。 我需要定義一個層次結構,沒有使用RowDetailsTemplate,但是您的錯誤表明該屬性丟失了,

我認為

每個LanesData都有一個RNPPayPlanLane 1-1

每個RNPPayPlanLane具有許多RNPPayPlanLaneDistances 1-N(主從細節)

好像應該是這樣

       ItemsSource="{Binding RNPPayPlanLane.RNPPayPlanLaneDistances}">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM