我正在尝试在绑定的布尔值上进行一对TextBlock
切换(一个Visible
,另一个Collapsed
,反之亦然)。
我可以使用BooleanToVisibilityConverter
,但不能做a!对于另一种情况,我尝试使用MVVM Light的UniversalConverter
,它接受ConverterParameter
中的lambda参数。
问题是,我找不到任何使用的例子,我的尝试失败了。
我已经在XAML资源中声明了它:
<Window.Resources>
<ex:UniversalConverter x:Key="UniversalConverter" />
</Window.Resources>
然后将这个添加到TextBlock
中
<TextBlock Visibility="{Binding Path=ShowA, Converter={StaticResource universalConverter}, ConverterParameter='b=>b?Visible:Collapsed'}">A</TextBlock>
<TextBlock Visibility="{Binding Path=ShowA, Converter={StaticResource universalConverter}, ConverterParameter='b=>b?Collapsed:Visible'}">B</TextBlock>
这在XAML设计窗口中抛出了一个异常:Unknown identifier 'Visible'
。
我还尝试了b=>b?Visibility.Visible:Visibility.Collapsed
,它是UniversalConverter的Convert
方法注释中的一个示例;它抛出了Unknown identifier 'Visibility'
。
如何将所需的引用添加到UniversalConverter
发布于 2012-07-26 20:22:23
老实说,我从来没有用过优秀的MVVM Light工具包框架中的UniversalConverter
类,所以我不能回答你的具体问题“如何让它工作”。
但是为了解决您的实际问题,您可以创建自己的BooleanToVisibilityConverter
,它允许反转true/false和可见/折叠之间的映射。有关示例,请参阅How do I invert BooleanToVisibilityConverter?。
就我个人而言,出于许多原因,我真的会避免使用UniversalConverter
:
如您现在所知,
发布于 2016-11-21 20:57:55
UniversalConverter
似乎从2013年起就被移除了
http://blog.galasoft.ch/posts/2013/01/mvvm-light-v4-1-26-change-log/
BL0023.004,删除UniversalConverter
https://stackoverflow.com/questions/11668166
复制相似问题