我在手风琴中有一个数据网格,我以编程方式添加项目。这些项目没有添加问题,但是手风琴项目不会刷新到可以查看数据网格的所有内容的大小。如果我拖动数据网格边以调整其大小,则手风琴项目会正确调整大小。我似乎无法通过代码自动执行此操作。我已尝试在网格或手风琴项目上使用InvalidateArrage和InvalidateMeasure,我也尝试更改控件的宽度或高度,但似乎没有任何工作通过代码。我甚至尝试过LayoutRoot上的Invalidate方法。有没有什么我可以做代码明智的手风琴项目刷新到适当的大小?
答案 0 :(得分:4)
我有同样的问题,但在AccordionItem中有ListBox。我解决了这个问题 - 把你的DataGrid放在网格控件中
<toolkit:Accordion.ContentTemplate>
<DataTemplate>
<Grid>
<DataGrid.../>
</Grid>
</DataTemplate>
</toolkit:Accordion.ContentTemplate>
当您更改ItemsSource(添加项目)时,您需要调用UpdateLayout()方法
private void ItemsSource_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
yourAccordion.UpdateLayout();
}