ApplyValueConverter
は、ConventionManager
クラスの静的Func<>
代理人として定義されています。
大会結合のシナリオでは、独自のコンバータを提供するために、あなたはあなたのブートストラップのConfigure()
方法でFunc<>
独自に定義する必要があり、このような何か:
注:私は、変換を想定していますですからOpacity
までです。
public class AppBootstrapper : Bootstrapper<ShellViewModel> {
private static IValueConverter StringToOpacityConverter = new StringToOpacityConverter();
public override void Configure() {
var oldApplyConverterFunc = ConventionManager.ApplyValueConverter;
ConventionManager.ApplyValueConverter = (binding, bindableProperty, property) => {
if (bindableProperty == UIElement.Opacity && typeof(string).IsAssignableFrom(property.PropertyType))
// ^^^^^^^ ^^^^^^
// Property in XAML Property in view-model
binding.Converter = StringToOpacityConverter;
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// Our converter used here.
// else we use the default converter
else
oldApplyConverterFunc(binding, bindableProperty, property);
};
}
}
うわー、私はそれを公正に使用してきたことを知っていますし、価値コンバーターのためのコンベンションがあったこともわかりませんでした。これは大量の入力を省くことができます! – Charleh
@Charleh面白いことは、私はOPが尋ねる前に知らなかったということです。私もそのことを知ってうれしいです。 –
それはペイオフ対入力の量になると(ほとんど)コンバータは、あなたの木びき台のためので、少し強打されている....私は嫌いONEのことだが、のためのサポートがあったかどうかをチェックするために思ったことはありません! – Charleh