在RadGridView.RowDetailsTemplate中的CaliburnMicro绑定视图

时间:2017-07-21 11:25:39

标签: c# wpf binding contentcontrol rowdetailstemplate

我有一个带有GridViewToggleRowDetailsColumn的RadGridView,它可以展开所选项目并显示更多详细信息。我想使用CaliburnMicro来显示DetailsView,所以我将DetailsViewModel的属性添加到我的" MainViewModel"并添加一个带有Binding的ContentControl。

 <telerik:RadGridView ItemsSource="{Binding Products.View}"
             SelectedItem="{Binding SelectedProduct}"  ... > 

            <telerik:RadGridView.RowDetailsTemplate>
                <DataTemplate>
                    <ContentControl cal:View.Model="{Binding ProductDetailsViewModel}" />
                </DataTemplate>
            </telerik:RadGridView.RowDetailsTemplate>


            <telerik:RadGridView.Columns>
                <telerik:GridViewToggleRowDetailsColumn />

                ...Columndefinitions...

            <telerik:RadGridView.Columns>                   
        </telerik:RadGridView>

问题是,不显示详细信息。从here我读到由于ItemsSource绑定失败。所以我试过

<ContentControl cal:View.Model="{Binding ProductDetailsViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}" />

但它仍然无效。

1 个答案:

答案 0 :(得分:1)

如果ProductDetailsViewModel属性与Products绑定的RadGridView属性在同一个类中定义,请尝试以下操作:

<ContentControl cal:View.Model="{Binding DataContext.ProductDetailsViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=telerik:RadGridView}}" />