using Common.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace MegaRobo.C00225155App.MenuViews { public class BoxTemplateSelector : DataTemplateSelector { // 样品工装模板 public DataTemplate SampleBoxTemplate { get; set; } // 原液工装模板 public DataTemplate SourceLiquidBoxTemplate { get; set; } // 粉末工装模板 16ml public DataTemplate PowderBoxTemplate_16ml { get; set; } // 粉末工装模板 125ml public DataTemplate PowderBoxTemplate_125ml { get; set; } // 96孔的Tip头工装模板 public DataTemplate TipHeadersBoxTemplate { get; set; } // 空工装模板 public DataTemplate EmptyBoxTemplate { get; set; } public override DataTemplate SelectTemplate(object item, DependencyObject container) { // 直接判断 item 的类型(BaseBottleBox 及其派生类) if (item == null) return EmptyBoxTemplate; // 样品工装 if (item is SampleBottleBoxModel) { return SampleBoxTemplate; } // 原液工装 else if (item is SourceLiquidBottleBoxModel) { return SourceLiquidBoxTemplate; } // 16ml粉末工装 else if (item is SourcePowderBottleBoxModel) { return PowderBoxTemplate_16ml; } // 125ml粉末工装 else if (item is SourcePowderBottleBoxModel_125ml) { return PowderBoxTemplate_125ml; } // Tip头工装 else if (item is TipBoxModel) { return TipHeadersBoxTemplate; } // 基类 BaseBottleBox(无具体工装类型,显示空) else if (item is BaseBottleBox baseBox && baseBox.IsEmpty) { return EmptyBoxTemplate; } // 其他情况默认空工装 return EmptyBoxTemplate; } } }