ConfigValueTemplateSelector.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System.Windows;
  2. using System.Windows.Controls;
  3. namespace MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig
  4. {
  5. public class ConfigValueTemplateSelector : DataTemplateSelector
  6. {
  7. public DataTemplate BoolTemplate { get; set; }
  8. public DataTemplate NumbericTemplate { get; set; }
  9. public DataTemplate StringTemplate { get; set; }
  10. public DataTemplate SelectionTemplate { get; set; }
  11. public override DataTemplate SelectTemplate(object item, DependencyObject container)
  12. {
  13. if (!(item is ConfigItem))
  14. return null;
  15. ConfigItem configItem = item as ConfigItem;
  16. DataTemplate curTemplate = null;
  17. switch (configItem.Type)
  18. {
  19. case DataType.Bool:
  20. curTemplate = BoolTemplate;
  21. break;
  22. case DataType.Int:
  23. case DataType.Double:
  24. curTemplate = StringTemplate; // NumbericTemplate;
  25. break;
  26. case DataType.String:
  27. curTemplate = configItem.Tag=="ReadOnlySelection" ? SelectionTemplate: StringTemplate;
  28. break;
  29. }
  30. return curTemplate;
  31. }
  32. }
  33. }