Записи отображают текст по умолчанию вместо отображения заполнителя Xamarin - PullRequest
0 голосов
/ 22 октября 2018

Когда я запускаю приложение, на первой странице вместо Entry s отображается текст по умолчанию 0 вместо заполнителя.

У меня есть AddContactPage.xaml

<StackLayout>
    <Entry Placeholder="Enter Class" Text="{Binding Class}"></Entry>
    <Entry Placeholder="Enter Id" Text="{Binding StudentId}"></Entry>
</StackLayout>

Атрибуты, связанные с записями

public int StudentId { get; set; }
public int Class { get; set; }

Как решить эту проблему.Смотрите o / p-

enter image description here

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Одним из возможных решений является свойство строки для привязки:

private int _studentId;

public int StudentId 
{ 
    get { return _studentId; }
    set
    {
        SetProperty(ref _studentId, value);
        RaisePropertyChanged("StudentIdString"); // If you're using Prism. You can use any other way to raise the PropertyChanged event 
    }
}

public string StudentIdString
{
    get { return StudentId.ToString(); }
}

Вот и все!Теперь вы можете привязать StudentIdString к вашему Entry.Сделайте то же самое с Class, и все готово.


Другое решение вашей проблемы - это конвертер, предложенный Woj:

public class IntToStringConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        int i = (int)value;
        return i.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return int.Parse((string)value);
    }
}

Затем используйте его в своемxaml как это:

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

<Entry Placeholder="Enter Id" Text="{Binding StudentId, Converter={StaticResource intToString}}"></Entry>
0 голосов
/ 29 июня 2019

На самом деле вы можете использовать StringFormat.Попробуйте это StringFormat = '{0: #. ## ;;}'

0 голосов
/ 22 октября 2018

Поскольку элемент управления Entry Text связан с моделью, он не будет отображать заполнитель для нулевого свойства, с которым он связан.В этом случае вам может потребоваться удалить привязку текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...