gpt4 book ai didi

WPF:有没有一种方法可以在不定义资源的情况下使用 ValueConverter?

转载 作者:行者123 更新时间:2023-12-02 06:10:37 25 4
gpt4 key购买 nike

有没有一种方法可以在不在资源中定义的情况下使用 ValueConverter?因为语法非常冗长。

最佳答案

您可以使用 MarkupExtension 来最小化所需的 xaml 代码量。例如:

public class  MyConverter: MarkupExtension, IValueConverter

{ 私有(private)静态 MyConverter _converter;

public object Convert(object  value, Type targetType, 
object parameter, System.Globalization.CultureInfo culture)
{
// convert and return something
}

public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
// convert and return something (if needed)
}

public override object ProvideValue(IServiceProvider serviceProvider)
{
if (_converter == null)
_converter = new MyConverter();
return _converter;
}

你最终得到这样的语法:

{Binding Converter={conv:MyConverter}}

这种方法还有一个额外的优势,那就是确保您的所有转换器都是单例。

article很好地解释了概念并提供了示例代码。

关于WPF:有没有一种方法可以在不定义资源的情况下使用 ValueConverter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3277966/

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