Мне нужно показать содержимое в приложении для Windows Phone. Это текст, изображения, аудио, видео и т. Д. Каждый Item
имеет имя автора и изображение, а также содержимое List<>
(разное количество). И мне нужно это показать. Сейчас у меня есть одно решение - используйте TemplateSelector
с Lisbox
или LLS
. Но комбинации контента составляют> 30 и 30 temlates - это около 2000 строк кода, и я думаю, что это плохое решение. Я попытался сделать универсальный контроль, который включает в себя все контейнеры (элементы управления) для контента, и я заполнил его только тем содержимым, которое находится в Item
(пустые контейнеры просто сведены к минимуму), но производительность действительно плохая (каждый имеет 10-11 элементов управления) , Решение с одним контролем хорошо, но мне нужно хорошее исполнение. Есть ли способ решить этот вопрос?Какой контроль следует использовать для показа другого контента?
0
A
ответ
0
У меня была такая же проблема, чтобы отображать различные кнопки в Windows Phone. Я сделал UserControl и установить определенный шаблон в код-за:
public partial class Map : UserControl
{
public Map()
{
InitializeComponent();
this.Loaded += Map_Loaded;
}
void Map_Loaded(object sender, RoutedEventArgs e)
{
(this.DataContext as MyViewModel).LoadingItemsCompleted += OnLoadingItemsCompleted;
}
private void OnLoadingItemsCompleted(object sender, EventArgs eventArgs)
{
// Don't care about thats
ObservableCollection<DependencyObject> children = Microsoft.Phone.Maps.Toolkit.MapExtensions.GetChildren(map);
MapItemsControl itemsControl = children.FirstOrDefault(x => x.GetType() == typeof(MapItemsControl)) as MapItemsControl;
// Here !
foreach (GeolocalizableModel item in (this.DataContext as MyViewModel).Items)
{
Pushpin pushpin = new Pushpin();
switch (item.PushpinTemplate)
{
case Server.PushpinTemplate.First:
pushpin.Template = this.Resources["firstPushpinTemplate"] as ControlTemplate;
break;
case Server.PushpinTemplate.Second:
pushpin.Template = this.Resources["secondPushpinTemplate"] as ControlTemplate;
break;
case Server.PushpinTemplate.Third:
pushpin.Template = this.Resources["thirdPushpinTemplate"] as ControlTemplate;
break;
default:
if (PushpinTemplate != null) pushpin.Template = PushpinTemplate;
break;
}
pushpin.Content = item.PushpinContent;
pushpin.GeoCoordinate = item.Location;
itemsControl.Items.Add(pushpin);
}
}
public ControlTemplate PushpinTemplate
{
get { return (ControlTemplate)GetValue(PushpinTemplateProperty); }
set { SetValue(PushpinTemplateProperty, value); }
}
// Using a DependencyProperty as the backing store for PushpinTemplate. This enables animation, styling, binding, etc...
public static readonly DependencyProperty PushpinTemplateProperty =
DependencyProperty.Register("PushpinTemplate", typeof(ControlTemplate), typeof(Map), new PropertyMetadata(null));
}
Шаблоны определены в UserControl.
Смежные вопросы
- 1. Какой контроль следует использовать для показа ключевых слов сайта?
- 2. Какой контроль следует использовать
- 3. Какой контроль следует использовать здесь?
- 4. Какой контроль следует использовать для этого?
- 5. Какой стандартный WPF-контроль следует использовать?
- 6. Какой контроль следует использовать? Повторитель или Gridview?
- 7. Какой контроль следует использовать для показа «Избранных продуктов» на моем веб-сайте ASP.net?
- 8. Какой контроль следует использовать для 2D-чертежа с WPF?
- 9. Какой контроль следует использовать для получения следующих строк в ssrs?
- 10. Какой контроль следует использовать для добавления в него текста?
- 11. Какой контроль следует использовать для отображения визуальных, управляемых элементов?
- 12. ASP.Net, какой контроль сетки следует использовать и как его использовать?
- 13. Какой URL-адрес следует использовать для контента Amazon CloudFront?
- 14. Какой шаблон дизайна следует использовать для вывода другого контента с использованием одного шаблона?
- 15. Какой контроль необходимо для показа видео с веб-камеры?
- 16. Какой контроль использовать
- 17. Какой контроль использовать
- 18. Какой аудиокодек следует использовать?
- 19. Какой метод следует использовать?
- 20. Какой URL следует использовать?
- 21. Какой layoutManager следует использовать?
- 22. Какой LayoutManager следует использовать?
- 23. Какой контроллер следует использовать?
- 24. Какой маршрут следует использовать?
- 25. Какой набор данных следует использовать?
- 26. Какой источник/контроль версий использовать для дома?
- 27. Xamarin Forms - какой контроль использовать для достижения ...?
- 28. Какой контроль использовать для наложения графического интерфейса?
- 29. Какому игроку следует использовать для показа видео на моем сайте?
- 30. Контроль источника: какую версию нумерации следует использовать для филиалов?