如果有人对这如何工作感兴趣,我已经根据ColinE的回答制定了解决方案。首先,您必须创建一个新类,其中包含您要添加到 XAML 代码中的条件:
public class MyNiceConverterName : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
// Your conditions here!
return value_you_want_to_return; // E.g., a string, an integer and so on
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
throw new NotImplementedException(); // Leave this like here, don't worry
}
}
随心所欲地调用该类(现在称为MyNiceConverterName
)并Convert()
使用您希望添加到 XAML 文件的条件来实现该方法。请记住将object value
转换为您正在使用的类型(例如,(int)value
如果它是整数)。
这几乎完成了!但还没有,首先在 XAML 中将转换器声明为资源。您可以将此代码粘贴到命名空间声明下方:
<Control.Resources>
<converter:MyNiceConverterName xmlns:converter="clr-namespace:My_Namespace" x:Key="MyNiceConverterName" />
</Control.Resources>
您必须声明定义类的名称空间(即,My_Namespace
用您的类删除)并重命名MyNiceConverterName
为您的类名。键将是定义用于引用 XAML 文档中的转换器的名称,这里我使用了相同的类名,但您可以自由更改它。
最后,是时候使用转换器了。放上这个,你就完成了:
{Binding variable_with_value, Converter={StaticResource MyNiceConverterName}}
请记住更改variable_with_value
为您想在绑定中使用的那个。
我希望它有帮助!