我有一个GridControl,它的ItemSource绑定到SearchResultViewModel.SearchResults。在这个GridControl中,我有一个DetailDescriptor,它包含另一个GridControl,我也想将它的ItemSource设置为SearchResultViewModel.SearchResults。
这是我的代码:
<dxg:GridControl ItemsSource="{Binding Path=SearchResultViewModel.SearchResults, Mode=OneWay}">
<dxg:GridControl.DetailDescriptor>
<dxg:ContentDetailDescriptor>
<dxg:ContentDetailDescriptor.ContentTemplate>
<DataTemplate>
<dxg:GridControl ItemsSource="{Binding Path=SearchResultViewModel.SearchResults, Mode=OneWay}" MaxHeight="200">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="Heating Deviation" FieldName="HeatingDeviation"/>
</dxg:GridControl.Columns>
</dxg:GridControl>
</DataTemplate>
</dxg:ContentDetailDescriptor.ContentTemplate>
</dxg:ContentDetailDescriptor>
</dxg:GridControl.DetailDescriptor>SearchResults看起来像这样
public struct SearchResult
{
public SearchResult(SepoContainer sepo, int heatingDeviation)
{
HeatingDeviation = heatingDeviation;
SepoContainer = sepo;
}
public int HeatingDeviation { get; }
public SepoContainer { get; }
}我想我搞错了什么,因为我不知道该怎么做
发布于 2018-04-12 20:53:37
ContentDetailDescriptor.DataContext会自动设置为行对象,您可以通过在Binding中使用RelativeSource来检索输出GridControl来实现您想要的结果。
<dxg:ContentDetailDescriptor.ContentTemplate>
<DataTemplate>
<dxg:GridControl ItemsSource="{Binding ItemsSource, RelativeSource={RelativeSource AncestorType=dxg:GridControl}, Mode=OneWay}" MaxHeight="200">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="Heating Deviation" FieldName="HeatingDeviation"/>
</dxg:GridControl.Columns>
</dxg:GridControl>
</DataTemplate>
</dxg:ContentDetailDescriptor.ContentTemplate>https://stackoverflow.com/questions/49795607
复制相似问题