IValueConverter – 将对象作为 ConverterParameter 传递



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

我尝试使用转换器参数,但它不支持绑定...

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

我做错了什么还是有任何解决方法?

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

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

或者,你可以直接在 XAML 中传入该值,或者作为在应用中其他位置的静态类中定义的静态值传入,当然,如果你提前知道该值将是什么,则这样做。

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

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

相关内容

  • 没有找到相关文章

最新更新