我正在尝试在绑定的布尔值上进行一对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
复制相似问题