1

我的 WPF 应用程序中有一个表单,我必须添加一个编辑按钮。现在,表单始终处于编辑模式,没有“查看模式”。但是,由于各种原因,我需要将控件保持在视图模式,直到用户单击编辑按钮,然后隐藏编辑按钮并在其位置显示一个保存按钮。

我的表单已经有一个DependencyProperty名为的布尔值CanModify,当用户的权限授予他们编辑表单中显示的记录的权利时,这是真的。我正在添加一个DependencyProperty名为的新布尔值InEditMode,默认为 false。隐藏和启用按钮非常简单,但是ComboBox如果用户无法编辑记录,或者如果他们可以编辑并且表单处于查看模式,我想隐藏这个控件。为此,我需要将两个布尔属性的 AND 运算结果一起转换,然后将其转换为一个Visibility值。

我已经有了一个实现IValueConverterbool 并将其转换为Visibility. 我刚刚编写了一个实现的类,该类IMultiConverter接受一个布尔数组并将它们与运算一起(或对它们进行运算,具体取决于参数的值)。

我想做的是获取结果IMultiConverter并通过IValueConverter将结果转换为Visibility. 我可以这样做吗?或者我最好在新的代码中执行 AND DependencyProperty

托尼

4

3 回答 3

2

您确实可以链接转换器,我自己的示例尚未处理 MultiValueConverters 但实现LinkedMultiValueConverter. 这种方法的缺点之一是您必须重新创建当前必须使用提供的属性的任何转换器。

git://github.com/pmacn/ValueConverters.WP8.git

或者

https://github.com/pmacn/ValueConverters.WP8

然后你会做以下

<con:LinkedConverter x:Name="MyFancyLinkedConverter">
    <con:BooleanInversionConverter />
    <con:BooleanToVisibilityConverter />
</con:LinkedConverter>
于 2013-02-13T17:28:12.170 回答
1

您不能链接转换器。

而是将您的 MultiValueConverter 更改为采用字符串参数“bool”或“visibility”。根据参数返回布尔或可见性对象

于 2012-05-23T21:33:03.220 回答
0

因为你不能链接转换器,所以我在我的类中添加了另一个布尔属性。我将方法添加到新属性所依赖的两个属性中,当它们发生变化时会调用它们。这些重新计算新属性的值。然后我使用我原来的布尔到可见性转换器来显示或隐藏有问题的控件。

于 2012-05-24T14:06:15.053 回答