我在数据模板中包含两个控件。控件#1 是称为“TXTBLOCK”的文本块。控件 #2 是一个名为“TXTBOX”的文本框:
TXTBLOCK 使用转换器将 Visibility 设置为 TextBox Visibility 以提供相反的值。
例子:
<TextBlock Name="TXTBLOCK" Visibility="{Binding ElementName=**TXTBOX**, Path=Visibility, Converter={StaticResource toggleVisConverter}}" />
<TextBox Name="TXTBOX" Visibility="{Binding ElementName=**TXTBLOCK**, Path=Visibility, Converter={StaticResource toggleVisConverter}}" />
转换器是:
if (targetType == typeof(Visibility))
{
Visibility vis = (Visibility)value;
if (vis == Visibility.Collapsed)
{
return Visibility.Visible;
}
else
{
return Visibility.Collapsed;
}
//var vis == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed;
}
//return vis;
throw new InvalidOperationException("Value must be of type 'Visibility'.");
现在......对我来说这应该很简单。更改一个的可见性会将另一个的可见性设置为 false。
不是这样的...
第一次工作,然后转换器停止被调用。
即使我在后面的代码中明确声明:“TXTBOX.Visibility = Visibility.Hidden”,转换器也永远不会被调用。
是什么赋予了?我错过了什么?
这是我在 SO 上的第一篇文章......如果我错过了什么或需要提供更多信息,请原谅我。我很乐意这样做
谢谢!