Зациклилась привязка - почему так происходит?
Зациклилось свойство
Как делать правильно ?
Свойство M:
[ObservableProperty]
private List<string> input;
Свойство VM:
public string Input
{
get => ListToString(_myModel.Input);
set
{
_myModel.Input = StringToList(value);
OnPropertyChanged();
}
}
Метод обрабатывающий события от M в VM:
private void MyModelPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "Input":
OnPropertyChanged(nameof(Input));
break;
default:
throw new Exception("Неизвестный аргумент");
}
}
Методы VM:
private string ListToString(List<string> list)
{
if (list != null)
{
StringBuilder stringBuilder = new();
foreach (var item in list)
{
if (!string.IsNullOrEmpty(item))
{
stringBuilder.AppendLine(item);
}
}
return stringBuilder.ToString();
}
else
{
return "";
}
}
private List<string> StringToList(string text)
{
return text.Split('\r').ToList();
}
В V -> Microsoft.Maui.Controls.Editor
<Editor Text="{Binding Input}"
Margin="10,0"
WidthRequest="300"
HeightRequest="300"
AutoSize="TextChanges"/>
Источник: Stack Overflow на русском