问题(在切换绑定到itemssource的列表时发生-具有sharedsizegroup的行暂时消失时):
所以我有一个
Grid
具有
IsSharedSizeScope="True"
是的。我正在生成的控件是日历/计划程序控件。
我有一个
TimeRuler
控件,我需要与标题对齐(下面屏幕截图中的橙色矩形)。我用sharedsizegroup来做这个。问题是
SharedSizeGroup
在生成的项中
ItemsControl
这就造成了一些奇怪的延迟,你可以在gif中看到。
还有什么可以重新渲染的吗
之后
itemsContainerGenerator呈现第一个项还是完成加载?
导致问题的代码段:
<!-- to even time ruler out -->
<Grid
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,-1,0,0">
<Grid.RowDefinitions>
<!-- both SuperHeader and LocationHeader are rendered later and this is causing this weird flickering/jumping -->
<RowDefinition SharedSizeGroup="SuperHeader" />
<RowDefinition SharedSizeGroup="LocationHeader" />
</Grid.RowDefinitions>
</Grid>
可视树或多或少:
这可以通过使那些高度固定而不使用SyrdsiSeGe来解决,但是它不再是灵活的了。
或者确保itemscontrol从不为空,例如使用observatecollection,添加新项并在之后删除旧项。这样,具有sharedsizegroup的行定义始终显示在可视化树中…
真烦人…我认为在这种情况下甚至不可能使用sharedsizegroup。