Как получить связанный элемент управления для сообщения «Пусто», когда оно связано с пустотой? - PullRequest
2 голосов
/ 23 мая 2011

Я пытаюсь расширить пример программы чтения RSS с здесь .

Я преобразовал приложение в панораму.Я сделал так, чтобы первый элемент панорамы загружался с моими каналами, а у второго элемента были категории с соответствующими флажками.Категории привязаны к классу Категории, который заполняется из файла XML.

В любом случае, раздел «Мои каналы» имеет код, который выглядит следующим образом:

<TextBlock x:Name="ItemName" Text="{Binding ItemTitle}" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="ItemDetails" Text="{Binding ItemDetails}" Style="{StaticResource PhoneTextSubtleStyle}"/>

и Iя пытаюсь заставить его отображать «Пусто», когда в списке нет каналов (каналы заполняются, когда отмечены флажки на соседней панели).Поэтому я добавил этот код в мой метод OnNavigatedTo в MainPage.xaml.cs

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    this.DataContext = App.Model;
    base.OnNavigatedTo(e);

    // If there are no feeds yet, let the user know
    if (App.Model.FeedItems.Count == 0)
    {
        App.Model.FeedItems.Add(
                    new ViewModel.ItemModel()
                    {
                        ItemDetails = "",
                        ItemTitle = "Empty!",
                        ItemLink = "#"
                    }
                        );
    }
}

, но это был неправильный подход.Теперь, если я перехожу на другую страницу и возвращаюсь, и в списке есть кормовые элементы, я все равно получаю «Пусто», за которым следуют элементы.Как мне это исправить?

Также, когда "Пусто!"на самом деле работает, я все еще могу нажать на ссылку (ItemLink выше);как отключить событие click для этого одного случая?

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

В дополнение к расширенному ListBox Найджела, у вас есть по крайней мере пара возможных решений:

  • Создайте UserControl , встраивая ваш ListBox плюс TextBlock, показывающий «пустой» тексти сделайте так, чтобы UserControl переключал видимость ListBox или TextBlock в зависимости от содержимого списка каналов.
  • Замените свой ListBox на LongListSelector из Silverlight Toolkit и установите это свойство ListHeader для LongListSelector.показывать «пустой» текст, когда список каналов пуст.
0 голосов
/ 23 мая 2011

Несколько совпадений вчера вечером я написал о том, как расширить элемент управления ListBox, чтобы иметь пустой шаблон данных.Его следует легко распространить на что-то вроде элементов управления Panorama или Pivot.

Основная теория заключается в том, что у вас есть элемент управления содержимым с текстом «Нет элементов» и контроль видимости его и ListBox в зависимости от того, является ли ListBoxесть предметы.

Вы можете прочитать его на Расширение списка WP7 ListBox .

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