gpt4 book ai didi

xamarin - 条目绑定(bind)到 int?以 Xamarin 形式

转载 作者:行者123 更新时间:2023-12-02 05:03:32 24 4
gpt4 key购买 nike

我在 Xamarin Forms 中有一个简单的条目:

<Entry Text="{Binding Number, Mode=TwoWay}" Placeholder="Number" Keyboard="Numeric" />

在 ViewModel 中有一个属性:

    private int? _number;
public int? Number
{
get { return _number; }
set
{
if (SetProperty(ref _number, value))
{
OnPropertyChange(nameof(Number));
}
}
}

我在条目中输入数字并按下按钮,但在按钮单击的过程中 - 数字仍然为空。我做错了什么?

最佳答案

您可以将 int 绑定(bind)到 Entry 但是您不能绑定(bind)可为 null 的 int。您可以添加另一个将数字转换为字符串的属性,也可以轻松创建这样的值转换器...

class NullableIntConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var nullable = value as int?;
var result = string.Empty;

if (nullable.HasValue)
{
result = nullable.Value.ToString();
}

return result;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
var stringValue = value as string;
int intValue;
int? result = null;

if (int.TryParse(stringValue, out intValue))
{
result = new Nullable<int>(intValue);
}

return result;
}

...并在您的页面中使用它,如下所示...

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:IntBinding"
x:Class="IntBinding.DemoPage">

<ContentPage.Resources>
<ResourceDictionary>
<local:NullableIntConverter x:Key="NullableIntConverter" />
</ResourceDictionary>
</ContentPage.Resources>

<StackLayout>
<Entry Text="{Binding Number, Mode=TwoWay, Converter={StaticResource NullableIntConverter}}" Placeholder="Number" Keyboard="Numeric" />
<Label Text="{Binding Number, Converter={StaticResource NullableIntConverter}}" />
</StackLayout>
</ContentPage>

关于xamarin - 条目绑定(bind)到 int?以 Xamarin 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com