首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVVM Light UniversalConverter bool to Visibility

MVVM Light UniversalConverter bool to Visibility
EN

Stack Overflow用户
提问于 2012-07-26 19:19:58
回答 2查看 3.8K关注 0票数 2

我正在尝试在绑定的布尔值上进行一对TextBlock切换(一个Visible,另一个Collapsed,反之亦然)。

我可以使用BooleanToVisibilityConverter,但不能做a!对于另一种情况,我尝试使用MVVM Light的UniversalConverter,它接受ConverterParameter中的lambda参数。

问题是,我找不到任何使用的例子,我的尝试失败了。

我已经在XAML资源中声明了它:

代码语言:javascript
运行
复制
<Window.Resources>
    <ex:UniversalConverter x:Key="UniversalConverter" />
</Window.Resources>

然后将这个添加到TextBlock

代码语言:javascript
运行
复制
<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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-26 20:22:23

老实说,我从来没有用过优秀的MVVM Light工具包框架中的UniversalConverter类,所以我不能回答你的具体问题“如何让它工作”。

但是为了解决您的实际问题,您可以创建自己的BooleanToVisibilityConverter,它允许反转true/false和可见/折叠之间的映射。有关示例,请参阅How do I invert BooleanToVisibilityConverter?

就我个人而言,出于许多原因,我真的会避免使用UniversalConverter

如您现在所知,

  • 没有文档说明
  • 强制使用XAML编写编程逻辑,而这并不是XAML的主要目标...
  • ...强制编写无法调试的C#代码行(至少对于VS2010 + .Net 4),这意味着此转换器是一种错误的方法IMHO
票数 2
EN

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11668166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档