У меня есть селектор шаблонов данных. Он используется для вызова двух шаблонов на основе значения типа уведомления. Но SelectTemplate не вызывается. Почему это так.
public class NotificationTemplateSelector : DataTemplateSelector
{
public DataTemplate ErrorTemplate { get; set; }
public DataTemplate InformationTemplate { get; set; }
public override DataTemplate SelectTemplate(
object item, DependencyObject container)
{
DataTemplate selectedTemplate = InformationTemplate;
if (!(item is NotificationArgs))
{
throw new ArgumentException("Not Valid!");
}
var selectedItem = (NotificationArgs)item;
if (selectedItem.NotificationType == NotificationType.Information)
{
selectedTemplate = InformationTemplate;
}
else if(selectedItem.NotificationType==NotificationType.Error)
{
selectedTemplate = ErrorTemplate;
}
return selectedTemplate;
}
}
NewView:-
MainView:-
Модель просмотра:-
Notification = new ObservableCollection();
var notificationService = new NotificationService(obj =>
{
NotificationMessage = obj.Message;
Notification.Add(obj);
}
Пожалуйста, помогите, почему selectTemplate() не вызывается. Кроме того, вместо Itemscontrol я могу просто сослаться на объект класса вместо коллекции. Для этого какой контроль я должен использовать. потому что моя привязка происходит во время выполнения, а данные сбора не жестко запрограммированы.
public ObservableCollection Notification
{
get => _notification;
set => SetPropertyValue(ref _notification, value, nameof(Notification));
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -sharp-wpf
SelectTemplate не вызывается для DataTemplateSelector C# wpf ⇐ C#
Место общения программистов C#
-
Anonymous
1733225465
Anonymous
У меня есть селектор шаблонов данных. Он используется для вызова двух шаблонов на основе значения типа уведомления. Но SelectTemplate не вызывается. Почему это так.
public class NotificationTemplateSelector : DataTemplateSelector
{
public DataTemplate ErrorTemplate { get; set; }
public DataTemplate InformationTemplate { get; set; }
public override DataTemplate SelectTemplate(
object item, DependencyObject container)
{
DataTemplate selectedTemplate = InformationTemplate;
if (!(item is NotificationArgs))
{
throw new ArgumentException("Not Valid!");
}
var selectedItem = (NotificationArgs)item;
if (selectedItem.NotificationType == NotificationType.Information)
{
selectedTemplate = InformationTemplate;
}
else if(selectedItem.NotificationType==NotificationType.Error)
{
selectedTemplate = ErrorTemplate;
}
return selectedTemplate;
}
}
NewView:-
MainView:-
Модель просмотра:-
Notification = new ObservableCollection();
var notificationService = new NotificationService(obj =>
{
NotificationMessage = obj.Message;
Notification.Add(obj);
}
Пожалуйста, помогите, почему selectTemplate() не вызывается. Кроме того, вместо Itemscontrol я могу просто сослаться на объект класса вместо коллекции. Для этого какой контроль я должен использовать. потому что моя привязка происходит во время выполнения, а данные сбора не жестко запрограммированы.
public ObservableCollection Notification
{
get => _notification;
set => SetPropertyValue(ref _notification, value, nameof(Notification));
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79247318/selecttemplate-not-getting-called-for-datatemplateselector-c-sharp-wpf[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия