IValueConverter –将对象作为ConverterParameter传递

时间:2018-10-17 13:05:02

标签: xaml xamarin

在Xamarin xaml文件中,我有一个ProgressBar,需要在其中计算Progress(值/最大值)。所以我写了转换器,但无法将最大值传递给转换器。

我尝试使用ConverterParameter,但它不支持绑定...

<ProgressBar Progress="{Binding Progress.Value, 
    Converter={StaticResource Convertor}, ConverterParameter=??}" />

我做错什么了吗?

1 个答案:

答案 0 :(得分:0)

如果在xaml中定义的引用具有任何计算进度所需的所有值,则可以将引用直接传递到转换器中。

<ProgressBar x:Name="_progressBar" Progress="{Binding Progress.Value,
    Converter={StaticResource Convertor}, ConverterParameter={x:Reference _progressBar}}" />

或者您可以直接在xaml中传递值,也可以将其作为应用程序中其他位置的静态类中定义的静态值传递,当然,如果您知道该值会提前的话,那么当然可以。

, ConverterParameter=100}" or
, ConverterParameter={x:Static local:DefaultValues.MaxValue}}"

但是,听起来好像您可以在设置Progress.Value / Progress.MaxValue属性之前在属性更改的情况下计算ViewModel中的Progress,然后您甚至不需要转换器。