12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
-
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using FWindSoft.Wpf;
- namespace FWindSoft.Wpf.Selector
- {
- public interface IEmptyTemplateChecker
- {
- bool IsEmpty(object item);
- }
- public class DefaultEmptyTemplateChecker : IEmptyTemplateChecker
- {
- public bool IsEmpty(object item)
- {
- return item == null;
- }
- }
- /// <summary>
- /// 空模板选择类
- /// </summary>
- public class EmptyDataTemplateSelector: DataTemplateSelector
- {
- public EmptyDataTemplateSelector()
- {
- Checker = new DefaultEmptyTemplateChecker();
- }
- public DataTemplate Empty { get; set; }
- public DataTemplate Use { get; set; }
- public IEmptyTemplateChecker Checker { get; set; }
- public override DataTemplate SelectTemplate(object item, DependencyObject container)
- {
- if (Checker == null)
- return Empty;
- var isEmpty = Checker.IsEmpty(item);
- var dataTemplate = isEmpty ? Empty : Use;
- return dataTemplate;
- }
- }
- }
|