У меня есть два набора данных. Один из них является значением по умолчанию, а другой - для того, когда пользователь выбирает этот элемент. Мне нужно предоставить выбранный элемент двойной ширины и высоты обычного шаблона. Как я могу это сделать?Изменение шаблона данных, когда пользователь его выбирает
ответ
Что вы хотите сделать, это не сложно, но оно не решается путем замены шаблона данных. Вместо этого это достигается с помощью Visual States в XAML. Визуальное состояние позволяет вам создавать несколько «представлений» вашего XAML (например, как он выглядит, когда он выбран и когда он не выбран) и легко переключаться между ними. Обмен шаблонами данных - большое дело, Мостафа, и может привести к тому, что ваш пользовательский интерфейс мерцает, потому что базовая подсистема должна повторно отобразить так много частей визуального дерева.
Если вы хотите узнать больше о визуальных состояниях, вы можете прочитать статью в блоге, которую я написал по тому же вопросу.
http://blog.jerrynixon.com/2013/11/windows-81-how-to-use-visual-states-in.html
Единственная проблема сейчас, чтобы выяснить, как вызвать визуальное состояние, когда выбран элемент в GridView или ListView. Во-первых, вы должны знать, что IsSelected является свойством элемента gridviewitem или listviewitem, в котором размещается ваш элемент. Однако сложнее достичь этого свойства, и наиболее распространенным подходом является подкласс вашего gridview/listview и переопределить PrepareContainerForItemOverride и установить привязку в коде.
Как это:
class MyModel
{
public bool IsSelected { get; set; }
}
class MyList : Windows.UI.Xaml.Controls.ListView
{
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
var model = item as MyModel;
var listViewItem = element as Windows.UI.Xaml.Controls.ListViewItem;
var binding = new Windows.UI.Xaml.Data.Binding
{
Source = model,
Mode = Windows.UI.Xaml.Data.BindingMode.TwoWay,
Path = new PropertyPath(nameof(model.IsSelected)),
};
listViewItem.SetBinding(Windows.UI.Xaml.Controls.ListViewItem.IsSelectedProperty, binding);
base.PrepareContainerForItemOverride(element, item);
}
}
Я надеюсь, что это помогает.
Удачи!
- 1. Rails, изменение значения db, когда пользователь выбирает значение combobox
- 2. Отображение данных из базы данных, когда пользователь выбирает одно значение
- 3. NullPointerException, когда пользователь выбирает фон из галереи
- 4. Закрыть AlertDialog, когда пользователь выбирает опцию
- 5. Отключить ввод текста, когда пользователь выбирает параметр
- 6. Как узнать, когда пользователь выбирает абзац?
- 7. выполните функцию javascript, когда пользователь выбирает файл
- 8. Парадигматический сигнал, когда пользователь выбирает строку
- 9. Ловить, когда пользователь выбирает элемент из CComboBox
- 10. Заполните наклейки, когда пользователь выбирает раскрывающийся список
- 11. вызова функция, когда пользователь выбирает опцию
- 12. Entity Framework пользователь выбирает цель базы данных
- 13. QT: пользователь выбирает действия
- 14. пользователь выбирает местоположение googlemap и сохраняет его в db
- 15. iPhone: изменение вида, когда пользователь дрожит
- 16. Отображать экран ожидания, когда пользователь выбирает строку UITable
- 17. выполняют команду POST, когда пользователь выбирает параметр из раскрывающегося списка
- 18. Android: Создать BroadcastReciever, который начинается, когда пользователь выбирает Контакт
- 19. Исправить значение в datetimepicker, когда пользователь выбирает дату
- 20. Обновить CKEDITOR, когда пользователь выбирает из раскрывающегося списка
- 21. Как отображать различный контент, когда пользователь выбирает переключатель?
- 22. Добавить другое текстовое поле, когда пользователь выбирает другую опцию
- 23. Как обновить панель, когда пользователь выбирает выпадающий список в Wicket?
- 24. Изображение поворачивается, когда пользователь выбирает один из фотогалереи
- 25. печать только содержимое фрейма, когда пользователь выбирает Файл-> Печать
- 26. Обновление UITableView, когда пользователь выбирает дату из календаря
- 27. Как сделать бит ложным, когда пользователь выбирает флажок в gridview
- 28. Изменение состояния, когда пользователь выбирает уведомление из Центра уведомлений iOS в Кордове
- 29. Draw Shapes, который выбирает пользователь
- 30. пользователь выбирает подстроку в python