背景
在我的XAML中,我有一个数据模板,用于定义列表框中项目的布局。对于我的模型类,我添加了一些我绑定的属性,专门用于管理演示文稿。简而言之,我有一些日期顺序的事件,每次我到达一个新的日期,我也想包括一个标题行。所以这个我有一些定义为Height = Auto的行。
问题
当它是新一天的第一个对象时,我的属性返回数据 - 该行被填充并且所有看起来都很好。当它不是当天的第一个对象时,属性返回null并且不显示该行。效果很好。大多。
但是当我说15个左右的对象并且我向下滚动时,'标题行'出现但是有空值(有时)。我已经多次检查过这些数据并且很好。然后,甚至更奇怪的是,上下滚动的行为可以使它正确,或者,移动虚假标题线发生的地方。所以我坚信它与我的数据无关。我认为这可能与我滚动的速度有关,但事实并非如此。我的XAML如下 - 其中有一条注释指示标题行的定义位置。 (使用'NewDateTimeDayString'和'NewDateTimeHeaderFiller'的绑定
<StackPanel Grid.Row="0" Grid.ColumnSpan="3">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--This stackpanel and the row beneath are causing issues - sometimes appearing when it should not based upon the data-->
<!--size is auto and row is effectively dropped when there is no data-->
<!--BUT sometimes when scrolling up and down they appear as empty -->
<StackPanel Background="{StaticResource PhoneAccentBrush}">
<TextBlock Grid.Row="0" Text="{Binding NewDateTimeDayString}"
Style="{StaticResource PhoneTextNormalStyle}" Margin="{Binding MarginSize}" />
</StackPanel>
<TextBlock Text="{Binding NewDateTimeHeaderFiller}" Grid.Row="1"/>
</Grid>
</StackPanel>
任何关于为什么会出现这种情况的想法,或者其他方法都会受到赞赏。巨大的。感谢。
答案 0 :(得分:0)
与一位建议我使用绑定改变Stackpanel可见性的同事进行了讨论。建议这种方法可能更合适,而不是依赖于行的(自动)大小。现在已经实现了这个,问题就解决了。