微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wpf – 绑定另一个元素的可见性 – 并反转

如果控件B被隐藏,我想使Control A可见,反之亦然。现在我有这个转换器:

public class InvertVisibilityConverter : IValueConverter {

    public Object Convert(Object value,Type targettype,Object parameter,CultureInfo culture) {
        if (targettype == typeof(Visibility)) {
            Visibility vis = (Visibility)value;
            return vis == Visibility.Collapsed ? Visibility.Visible : Visibility.Collapsed;
        }
        throw new InvalidOperationException("Converter can only convert to value of type Visibility.");
    }

    public Object ConvertBack(Object value,CultureInfo culture) {
        throw new Exception("Invalid call - one way only");
    }
}

而这个XAML:

<Button Visibility="{Binding ElementName=btn1,Path=Visibility,Converter={StaticResource InvertVisibilityConverter}}">Btn2</Button>

哪个工作。我只是想知道WPF / Silverlight中是否有更直接的方式来实现这一点?我不介意有一个转换器,我只是想确保没有更好的方式我不知道。

解决方法

底线,我看不到你在做什么的问题。

也就是说,如果您在viewmodel中具有控件A绑定的属性来控制其可见性,则将Control B绑定到相同的属性,并通过单独的转换器反转可见性。我不知道我是否可以阐明为什么,但对我来说似乎更为自然(至少代替你正在做的任何其他背景)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐