SelectTemplate не вызывается для DataTemplateSelector C# wpfC#

Место общения программистов C#
Ответить
Anonymous
 SelectTemplate не вызывается для DataTemplateSelector C# wpf

Сообщение 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));
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... -sharp-wpf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»