StringFormat для привязываемого свойства, не отображающего дополнительный текстC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 StringFormat для привязываемого свойства, не отображающего дополнительный текст

Сообщение Anonymous »

Итак, я создал пользовательский элемент управления в .net MAUI XAML с привязываемыми свойствами.
Во-первых, я хочу отображать % в качестве суффикса после текста определенное представление, но StringFormat не отображает его.
Мой элемент View


Мой код
public static readonly BindableProperty PercentProperty = BindableProperty.Create(nameof(Percent), typeof(string), typeof(StatsControl),
propertyChanged: (bindable, oldValue, newValue) => {
var control = (StatsControl)bindable;

control.PercentEntry.Text = newValue as string;
});

public string Percent
{
get => GetValue(PercentProperty) as string;
set => SetValue(PercentProperty, value);
}

Фактическое значение представлено правильно и работает нормально. Но никакой другой текст я не помещаю в StringFormat ни до, ни после отображения значения!
Изменить:
После долгих исследований я до сих пор не могу заставить это работать со StringFormat< /code>, поэтому единственный способ обойти это - жестко запрограммировать символ процента там, где он мне нужен.
Мой пользовательский элемент управления полностью





























Код элемента управления
public partial class StatsControl : ContentView
{

public static readonly BindableProperty CorrectProperty = BindableProperty.Create(nameof(Correct), typeof(int), typeof(StatsControl),
propertyChanged: (bindable, oldValue, newValue) => {
var control = (StatsControl)bindable;

control.CorrectEntry.Text = newValue.ToString();
});

public int Correct
{
get => (int)GetValue(CorrectProperty);
set
{
SetValue(CorrectProperty, value);
//OnPropertyChanged(nameof(Correct));
}
}

public static readonly BindableProperty WrongProperty = BindableProperty.Create(nameof(Wrong), typeof(int), typeof(StatsControl),
propertyChanged: (bindable, oldValue, newValue) => {
var control = (StatsControl)bindable;

control.WrongEntry.Text = newValue.ToString();
//control.WrongEntry.Text = String.Format(newValue as string, "{0}");
});

public int Wrong
{
get => (int)GetValue(WrongProperty);
set => SetValue(WrongProperty, value);
}

public static readonly BindableProperty PercentProperty = BindableProperty.Create(nameof(Percent), typeof(int), typeof(StatsControl),
propertyChanged: (bindable, oldValue, newValue) => {

var control = (StatsControl)bindable;

//control.PercentEntry.Text = (newValue as string) + "%";
control.PercentEntry.Text = String.Format("{0}%", newValue);
});

public int Percent
{
get => (int)GetValue(PercentProperty);
set => SetValue(PercentProperty, value);
}

public static readonly BindableProperty TitleProperty = BindableProperty.Create(nameof(Title), typeof(string), typeof(StatsControl),
propertyChanged: (bindable, oldValue, newValue) => {
var control = (StatsControl)bindable;

control.TitleLabel.Text = newValue as string;
});

public string Title
{
get => GetValue(TitleProperty) as string;
set
{
SetValue(TitleProperty, value);
}
}

public StatsControl()
{
InitializeComponent();
}
}

Как я использую этот элемент управления

Как установить значения в ViewModel страницы
#region Properties - Addition

[ObservableProperty]
int additionCorrect;

[ObservableProperty]
int additionWrong;

[ObservableProperty]
int additionPercentage;

#endregion

//...

AdditionCorrect = await SumCorrect(MathOperator.Add);
AdditionWrong = await SumWrong(MathOperator.Add);
AdditionPercentage = Helpers.CalculatePercent(AdditionCorrect, AdditionWrong);

OnPropertyChanged(nameof(AdditionCorrect));
OnPropertyChanged(nameof(AdditionWrong));
OnPropertyChanged(nameof(AdditionPercentage));


Подробнее здесь: https://stackoverflow.com/questions/780 ... ional-text
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»