Visual studio 表单以百分比形式编辑小数

Visual studio 表单以百分比形式编辑小数,visual-studio,xamarin.forms,xamarin.forms.entry,Visual Studio,Xamarin.forms,Xamarin.forms.entry,我想使用Xamarin.Forms控件以百分比的形式显示和编辑一个十进制值。我尝试过使用IValueConverter,但当我编辑光标时,光标到处都是,很难正确简单地编辑。我使用StringFormat=得到相同的结果 a我怎样才能简单方便地将小数点编辑为*100 b我可以显示一个%符号吗 c我可以有条件地进行转换:当字段Y=1时,显示为百分比,当字段Y=2时,显示为十进制 a我怎样才能简单方便地将小数点编辑为*100?b我可以显示一个%符号吗 可以使用未聚焦事件将十进制值显示为%symbol

我想使用Xamarin.Forms控件以百分比的形式显示和编辑一个十进制值。我尝试过使用IValueConverter,但当我编辑光标时,光标到处都是,很难正确简单地编辑。我使用StringFormat=得到相同的结果

a我怎样才能简单方便地将小数点编辑为*100

b我可以显示一个%符号吗

c我可以有条件地进行转换:当字段Y=1时,显示为百分比,当字段Y=2时,显示为十进制

a我怎样才能简单方便地将小数点编辑为*100?b我可以显示一个%符号吗

可以使用未聚焦事件将十进制值显示为%symbol

Xaml:

c我可以有条件地进行转换:当字段Y=1时,显示为百分比,当字段Y=2时,显示为十进制

Xaml:

 <Entry x:Name="entry" Unfocused="entry_Unfocused"/>
  private void entry_Unfocused(object sender, FocusEventArgs e)
    {
        var entry = sender as Entry;
        decimal value;
        if (Decimal.TryParse(entry.Text, out value))
        {
            entry.Text = value.ToString("P");
        }
        else
        {
            DisplayAlert("Error", "Please input decimal", "Cancel");
        }

    }
 <StackLayout>
        <Label x:Name="label" Text="Y:" />
        <Entry x:Name="entry_Y" />
        <Entry x:Name="entry" Unfocused="entry_Unfocused" />

    </StackLayout>
 private void entry_Unfocused(object sender, FocusEventArgs e)
    {
        var entry = sender as Entry;
        if (entry_Y.Text=="1")
        {               
            decimal value;
            if (Decimal.TryParse(entry.Text, out value))
            {
                entry.Text = value.ToString("P");
            }
            else
            {
                DisplayAlert("Error", "Please input decimal", "Cancel");
            }
        }
        else if (entry_Y.Text == "2")
        {
            decimal value;
            if (Decimal.TryParse(entry.Text, out value))
            {
                entry.Text = value.ToString();
            }
            else
            {
                DisplayAlert("Error", "Please input decimal", "Cancel");
            }
        }

    }