WP7 XAML - необычное и противоречивое поведение - PullRequest
0 голосов
/ 18 октября 2011

Фон

В моем XAML у меня есть шаблон данных, который определяет расположение элементов в списке.К моему модельному классу я добавил некоторые свойства, к которым я привязан, специально для управления презентацией.Короче говоря, у меня есть некоторые события в порядке дат, и каждый раз, когда я добираюсь до новой даты, я хочу также включить строку заголовка.Поэтому для этого у меня есть несколько строк, которые определены как Высота = Авто.

Задача

Когда это первый объект для нового дня, мои свойства возвращают данные - строка заполнена и все выглядит хорошо.Когда это не первый объект за день, свойства возвращают ноль, и строка не появляется.Работает хорошо.В основном.

Но когда я говорю примерно 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>

Любые идеи о том, почему это может происходить, или альтернативный подход будут оценены. Огромно. Спасибо.

1 Ответ

0 голосов
/ 19 октября 2011

Обсудили это с коллегой, который предложил мне изменить видимость Stackpanel, используя привязку.Предполагается, что этот подход может быть более подходящим, чем полагаться на (автоматический) размер строки.Теперь это реализовано, и проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...