我有一個具有名為 myValue 的屬性的 IValueConverter 類,我想將 ivalueconverter 除以其屬性 myValue!但是,我想知道是否可以將 myValue 從 xamarin 頁面傳遞給 ivalueconverter?如果是,如何?
值轉換器
class salesUIbtnWidth : IValueConverter
{
public double myValue { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (double)value / myValue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
嘗試實作類
<Button Text="Click me" HorizontalOptions="Center" VerticalOptions="Center"
CornerRadius="15" WidthRequest="{Binding Source={x:Reference
frame}, Path=Width,Converter={StaticResource salesUIbtnWidth}}">
</Button>//how to bind also the MyValue
我只想知道如何在頁面中設定myValue并在運行時將其從 xamarin 傳遞給(IvalueConverter)!
uj5u.com熱心網友回復:
您可以通過 傳遞值ConverterParameter
。
您可以參考示例代碼:
<Label Text="{Binding Red,
Converter={StaticResource doubleToInt},
ConverterParameter=255,
StringFormat='Red = {0:X2}'}" />
<local:DoubleToIntConverter x:Key="doubleToInt" />
DoubleToIntConverter.cs
public class DoubleToIntConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (int)Math.Round((double)value * GetParameter(parameter));
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return (int)value / GetParameter(parameter);
}
double GetParameter(object parameter)
{
if (parameter is double)
return (double)parameter;
else if (parameter is int)
return (int)parameter;
else if (parameter is string)
return double.Parse((string)parameter);
return 1;
}
}
有關更多資訊,您可以查看:系結轉換器引數
uj5u.com熱心網友回復:
根據您的問題,這是您需要做的!
以@Jessie Zhang 為例
<Button HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"
HeightRequest="{Binding Source={x:Reference frame}, Path=Height,
Converter={StaticResource doubleToInt}, ConverterParameter=enterYOURvaluHERE}"></Button>
uj5u.com熱心網友回復:
如果不想使用引數,可以在創建轉換器時定義 MyValue。
<ContentPage.Resources>
<app1:MyConverter x:Key="myConverter" MyValue="255"/>
</ContentPage.Resources>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/491611.html