public override DataTemplate SelectTemplate(object item, DependencyObject container) {
var obj = item as IListItemEx;
try {
var perceivedType = PerceivedType.Unknown;
if (obj != null) {
obj = obj.Clone();
var perceivedTypeProp = obj.GetPropertyValue(SystemProperties.PerceivedType, typeof(PerceivedType));
if (perceivedTypeProp != null && perceivedTypeProp.VarType != VarEnum.VT_EMPTY && perceivedTypeProp.VarType != VarEnum.VT_ERROR) {
perceivedType = (PerceivedType) obj.GetPropertyValue(SystemProperties.PerceivedType, typeof(PerceivedType)).Value;
}
}
if (perceivedType ==
PerceivedType.Image && obj != null && !obj.IsFolder) {
return ((FrameworkElement)container).FindResource("FSImageTooltip") as DataTemplate;
} else if (obj != null && obj.IsFileSystem) {
return ((FrameworkElement)container).FindResource("FSTooltip") as DataTemplate;
} else {
return ((FrameworkElement)container).FindResource("FSTooltip") as DataTemplate;
}
}
catch {
return ((FrameworkElement)container).FindResource("FSTooltip") as DataTemplate;
}
}
}