【问题标题】:Xamarin.Forms Edit decimal as percentXamarin.Forms 以百分比形式编辑小数
【发布时间】:2020-08-25 05:54:32
【问题描述】:

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

a) 我怎样才能简单轻松地将小数点编辑为 * 100?

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

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

【问题讨论】:

    标签: visual-studio xamarin.forms xamarin.forms.entry


    【解决方案1】:

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

    您可以使用UnFocused 事件将十进制值显示为 % 符号。

    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");
            }
    
        }
    

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

    Xaml:

     <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");
                }
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 2010-12-19
      • 1970-01-01
      • 2017-04-24
      • 2022-12-05
      • 1970-01-01
      相关资源
      最近更新 更多