我有以下转换器:
公共类InverseBooleanConverter:IValueConverter { #region IValueConverter成员
Dir
并且我正试图像这样使用它,以基于代码隐藏属性“ CanShowResults”和页面上的活动指示器控制列表视图的IsVisible:
with open('april.txt', 'r') as inputfile:
for line in inputfile:
text = line[0]
text = re.sub(r'-\n', '\n', text)\
text = re.sub(r'https://proxygt-law.wrlc.org:443/login?qurl=', '', text)
f.write(text + ;\n\)
。 。 。 。 。
在Convert方法中出现异常。我查看过文档,有人看到我在做什么错吗?
答案 0 :(得分:0)
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)
。