ConfigValueTemplateSelector.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Windows;
  2. using System.Windows.Controls;
  3. namespace VirgoUI.Client.Models.Utility.SystemConfig
  4. {
  5. public class ConfigValueTemplateSelector : DataTemplateSelector
  6. {
  7. public DataTemplate EnumTemplate { get; set; }
  8. public DataTemplate BoolTemplate { get; set; }
  9. public DataTemplate NumbericTemplate { get; set; }
  10. public DataTemplate StringTemplate { 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.Enum:
  23. curTemplate = EnumTemplate;
  24. break;
  25. case DataType.Int:
  26. case DataType.Double:
  27. curTemplate = StringTemplate; // NumbericTemplate;
  28. break;
  29. case DataType.String:
  30. curTemplate = StringTemplate;
  31. break;
  32. }
  33. return curTemplate;
  34. }
  35. }
  36. }