targetType используется для указания типа, в который необходимо преобразовать значение.И нет необходимости передавать его вашему классу IValueConverter.Он устанавливается автоматически в зависимости от того, какой тип он хочет преобразовать.
Например, если вы используете IValueConverter для текста лейбла, targetType
будет System.String
.Ваш targetType
всегда System.Object
, потому что вы использовали его на BindingCondition
.
Если вы хотите указать тип вручную, вы можете попробовать ConverterParameter
:
<BindingCondition Binding="{Binding Source={x:Reference retrievingActivity}, Path=IsRunning, Converter={StaticResource boolInvert}, ConverterParameter={x:Type x:Boolean}}" Value="true" />
Затем найдите его в IValueConverter
классе, например:
try
{
if ((Type)parameter != typeof(bool))
throw new InvalidOperationException("The target must be a boolean");
}
catch (Exception ex)
{
int x = 1;
}
return !(bool)value;
Более того, мы использовали if (value is bool)
непосредственно как то, что сказал Джейсон.