gpt4 book ai didi

c# - 有没有什么方法可以避免对过于简单化的 WPF/XAML 转换器的需求?

转载 作者:行者123 更新时间:2023-12-02 19:49:32 25 4
gpt4 key购买 nike

今天我遇到了这个需求(显然,再次)。幸运的是我已经为它编写了代码:

public class BooleanInverterConverter : IValueConverter 
{
public object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture )
{
return !((bool)value);
}
public object ConvertBack( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture )
{
throw new NotImplementedException( );
}
}

我还注意到了我自己的评论,这让我笑了 -

//Seriously? Kill me...

但是,它提出了一个有效的观点并引出了我的问题 - 这种事情绝对有必要吗?

最佳答案

对于 bool 转换器,它是由系统在控件命名空间中提供的,因此不必创建自己的转换器。参见

BooleanToVisibilityConverter Class (System.Windows.Controls)

<小时/>

此外,如果您不需要转换器...只需在虚拟机上放置一个返回可见性的属性即可。

public Visibility ShouldTheButtonBeShown 
{
get { return isValid ? Visbility.Visible : Visibility.Hidden; }
}
<小时/>

仅供引用,为了进一步使事情变得更容易,如何避免将转换器声明为静态实例?

为了实现这一点,可以为任何转换器创建一个基类,将其初始化为单例。这将允许人们跳过在页面资源上将其定义为它的静态实例的过程。

我在我的博客上描述了它

Xaml: Call Binding Converter Without Defining StaticResource in Xaml Thanks to Markup Derived Base Class in C# « OmegaMan's Musings

关于c# - 有没有什么方法可以避免对过于简单化的 WPF/XAML 转换器的需求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31619905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com