Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML:使用IValueConverter将公制转换为英制_C#_Xaml_Xamarin.forms_Ivalueconverter - Fatal编程技术网

C# XAML:使用IValueConverter将公制转换为英制

C# XAML:使用IValueConverter将公制转换为英制,c#,xaml,xamarin.forms,ivalueconverter,C#,Xaml,Xamarin.forms,Ivalueconverter,所以我有一些XAML,允许用户控制滑块来输入高度。然后,我将一个标签绑定到此值,以向它们显示滑块的十进制值。这是度量值(cm),因此我显示了简单的数字: <Label Text="Height (cm):" HorizontalTextAlignment="Start" /> <StackLayout x:Name="HeightSliderContainer"> <Slider x:Name="HeightSlider" Maximum="250" Min

所以我有一些XAML,允许用户控制滑块来输入高度。然后,我将一个标签绑定到此值,以向它们显示滑块的十进制值。这是度量值(cm),因此我显示了简单的数字:

<Label Text="Height (cm):" HorizontalTextAlignment="Start" />
<StackLayout x:Name="HeightSliderContainer">
    <Slider x:Name="HeightSlider" Maximum="250" Minimum="100" Value="175" />
    <Label x:Name="HeightSliderLabel" BindingContext="{x:Reference HeightSlider}" Text="{Binding Value, StringFormat='{0:F0}'}" />
</StackLayout>

你能包括你的转换器代码吗?@JesusAngulo。完成:)您在什么资源字典中定义MetricToImperialHeightTypeConverter?它是在App.xaml中还是在特定于页面的代码中?代码中是否有任何内容可能会影响HeightSliderLabelImperial的可见性?FWIW,我刚刚创建了一个新项目,复制并粘贴了XAML和Convert代码(以及使其运行的足够的其他代码),它可以按预期工作。@LDJ。你试过调试你的转换器吗?它有什么价值?
<Label Text="Height (cm):" HorizontalTextAlignment="Start" />
<StackLayout x:Name="HeightSliderContainer">
    <Slider x:Name="HeightSlider" Maximum="250" Minimum="100" Value="175" />
    <Label x:Name="HeightSliderLabel" BindingContext="{x:Reference HeightSlider}" Text="{Binding Value, StringFormat='{0:F0}'}" />
    <Label Text="(" />
    <Label x:Name="HeightSliderLabelImperial" BindingContext="{x:Reference HeightSlider}" 
           Text="{Binding Value, Converter={StaticResource MetricToImperialHeightTypeConverter}}" />
    <Label Text=")" />
</StackLayout>
<Label x:Name="HeightLabelImperial" Text="{Binding User.HeightInCm,
Converter={StaticResource MetricToImperialHeightTypeConverter}}" />
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        int cm = 0, feet = 0, inches = 0;
        cm = System.Convert.ToInt32((double)value);
        UnitConverter.CMToFeetAndInches(cm, out feet, out inches);

        string result = $"{feet}ft {inches}in";

        return result;            
    }