Странный артефакт при обновлении заголовка Pivot в Windows Phone 8

1

У меня есть страница XAML с только Pivot со связанным ItemSource и следующим шаблоном (с изменением только заголовка для simpilcity)

<phone:Pivot
    Margin="0,108,0,0"
    ItemsSource="{Binding Services}">
    <phone:Pivot.HeaderTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Title}" />
            </DataTemplate>
    </phone:Pivot.HeaderTemplate>
    <phone:Pivot.ItemTemplate>
        <DataTemplate>
            </DataTemplate>
        </phone:Pivot.ItemTemplate>
    </phone:Pivot>

Элемент ItemSource (Services) - это ObservableCollection простого типа данных, в котором используется только свойство Title реализующее INotifyPropertyChanged. Когда я изменяю Title любого элемента, заголовок Pivot отображается очень странно:

Изображение 174551

Вот полное упрощенное решение для воспроизведения проблемы: https://dl.dropboxusercontent.com/u/73642/pivotproblem.zip

Это ошибка Pivot?

Теги:
xaml
windows-phone-8

2 ответа

0
Лучший ответ

На самом деле ошибка... У меня была та же проблема, и я в конечном итоге вынуждаю перезагрузить весь DataContext Pivot.

Поскольку я использовал MVVM, я просто создал новый экземпляр коллекции элементов и повышенное свойство, измененное для этого.

0

Кажется, что TextBlock's Width не обновляется после изменения Title. Вы можете проверить это, определив свой TextBlock следующим образом:

<TextBlock Text="{Binding Title}" Width="400" />

Следовательно, он не обновляется, два заголовка перекрывают друг друга.

  • 0
    Да, это предотвращает перекрытие ярлыков. Но это не решение, установка ширины делает метки странными и не очень похожими на сводную.
  • 0
    @IgorKulman Да, вы правы, что это не решение - оно говорит, в чем проблема. Может быть, вы можете попытаться обновить TextBlock или привязать его ширину к свойству TitleWidth - и вызвать измененное для него свойство, а затем наложить несколько символов на метод получения TitleWidth.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню