有一个枚举字符串转换我如何使用值转换器的特定属性在WPF XAML
public class EnumToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
MailSettingsStateEnum enumValue = (MailSettingsStateEnum)value;
// extension method on the enum, to return a string based on enum.
return enumValue.Description();
}
// ConvertBack not relevant here.
}
我在WPF使用此XAML容易如下设置标签的内容属性。
<Label Content="{Binding MailSettingState, Converter={StaticResource
EnumConverterString}}"
BorderBrush="{Binding MailSettingState, Converter={StaticResource
EnumConverterBorderBrush}}" />
现在你可以看到,我有另一个属性BorderBrush。我也必须基于相同的枚举来设置它。所以,我不得不写另一转换器EnumConverterBorderBrush
那么,有没有办法让我只有一个转换器,它返回它有两个属性,我可以使用在XAML这些属性的对象?我可以创建转换器,它很容易,但我不知道如何在xaml中使用它。假设转换器返回了一个对象,并且具有名为MessageString(string类型)的另一个属性以及类型为Brush的另一个BorderBrush,那么如何使用它作为xaml?
AFAIK这是不可能你问什么。转换器将返回任何你想要的对象,但输出仍然是一个结果。 – lokusking
听起来有点不好意思,但你可以尝试设置'Label'的'DataContext'到转换后的对象(你需要为此创建一个类),然后绑定到它们的属性。不过,我只会使用两个独立的转换器。编辑。测试和工作。 – aQsu
谢谢大家。我刚刚意识到我的愚蠢。我想要的方式,它是不可能的。所有这三个答案都是解决方案,但由于我只能选择一个,所以对另外两个答案表示歉意。 – VivekDev