Wpf 多值转换器的结果本身可以转换吗?
我的WPF应用程序中有一个表单,我必须添加一个编辑按钮。现在,表单始终处于编辑模式,没有“查看模式”。但是,由于各种原因,我需要将控件保持在视图模式,直到用户单击编辑按钮,然后隐藏编辑按钮并在其位置显示保存按钮 我的表单已经有一个boolWpf 多值转换器的结果本身可以转换吗?,wpf,ivalueconverter,imultivalueconverter,Wpf,Ivalueconverter,Imultivalueconverter,我的WPF应用程序中有一个表单,我必须添加一个编辑按钮。现在,表单始终处于编辑模式,没有“查看模式”。但是,由于各种原因,我需要将控件保持在视图模式,直到用户单击编辑按钮,然后隐藏编辑按钮并在其位置显示保存按钮 我的表单已经有一个booldependencProperty,名为CanModify,当用户的权限授予他们编辑表单中显示的记录的权限时,该属性为真。我正在添加一个名为InEditMode的新booldependencProperty,它将默认为false。隐藏和启用按钮非常简单,但是如果
dependencProperty
,名为CanModify
,当用户的权限授予他们编辑表单中显示的记录的权限时,该属性为真。我正在添加一个名为InEditMode
的新booldependencProperty
,它将默认为false。隐藏和启用按钮非常简单,但是如果用户无法编辑记录,或者如果他们可以编辑并且表单处于查看模式,我有一个组合框
控件要隐藏它。为此,我需要将两个bool属性相加的结果转换为一个Visibility
值
我已经有一个类实现了IValueConverter
,并将bool转换为可见性
。我刚刚编写了一个类,它实现了IMultiConverter
,它接受一个布尔数组,并将它们和在一起(或对它们进行or,具体取决于参数的值)
我想做的是获取IMultiConverter
的结果,并将其通过IValueConverter
将结果转换为可见性
。我可以这样做吗?或者,我最好在代码中对一个新的DependencyProperty
执行AND操作
托尼你不能连锁转换器
相反,将多值转换器更改为采用字符串参数“bool”或“visibility”。根据参数返回bool或visibility对象,因为不能链接转换器,我在类中添加了另一个布尔属性。我将方法添加到两个属性中,新属性依赖于这两个属性,当它们发生更改时将调用它们。这些重新计算新属性的值。然后,我使用原始的布尔-可视性转换器来显示或隐藏有问题的控件。您确实可以链接转换器,我自己的示例还没有处理多值转换器,但实现
链接的多值转换器应该不会太难。这种方法的缺点之一是,您必须重新创建当前必须使用提供的属性的任何转换器
git://github.com/pmacn/ValueConverters.WP8.git
或
然后你会做下面的事情
<con:LinkedConverter x:Name="MyFancyLinkedConverter">
<con:BooleanInversionConverter />
<con:BooleanToVisibilityConverter />
</con:LinkedConverter>
这是一个有趣的问题。我最后添加了另一个布尔属性,当其他两个属性更改其值时,其值将被设置。我没有把你的答案标记为答案,因为这不是我所做的,然而,我给你一个向上投票,因为你的答案的第一行。我的转换器已经在使用参数来传递“AND”或“or”,以便在组合绑定到MultiBinding.Neat代码的布尔时使用该操作。开箱即用,这种能力不存在,但你有一个非常聪明的想法。它不适合你?当我今天下班回来时,我必须做一个适当的提交(而不是在github ui中摆弄),我会在完成后进行更新。好的,我想我会检查一下。