WPF Trigger based on Object Type

前端 未结 5 937
自闭症患者
自闭症患者 2020-12-13 17:27

Is there a way to do a comparison on object type for a trigger?


         


        
5条回答
  •  無奈伤痛
    2020-12-13 18:06

    This is based on @AndyG's answer but is a bit safer because it's strongly typed.

    Implement an IValueConverter named DataTypeConverter, which accepts an object and returns its Type (as a System.Type):

    public class DataTypeConverter:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, 
          CultureInfo culture)
        {
            return value?.GetType() ?? Binding.DoNothing;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter,
          CultureInfo culture)
        {
           throw new NotImplementedException();
        }
    }
    

    Change your DataTrigger to use the Converter, and set the value to the Type:

    
    ...
    
    

    Declare DataTypeConverter in the resources:

    
        
    
    

提交回复
热议问题