После некоторой работы я нашел решение. Просто поместите или измените приведенный ниже код в middleware.json file
"parse": {
"express-xml-bodyparser": {"params": { "explicitArray": false , "explicitRoot": false}}
},
Вы могли всегда выставлять свойство, это - возвраты метода считывания ToString () Stringbuilder. Форма могла затем связать с этим свойством.
private StringBuilder _myStringBuilder;
public string MyText
{
get { return _myStringBuilder.ToString(); }
}
Кажется, что мой предыдущий ответ не был сформулирован очень хорошо, поскольку многие люди неправильно поняли точку, я делал, таким образом, я попробую еще раз принимать во внимание комментарии людей.
Просто, потому что Строковый объект неизменен, не означает, что переменная Строки типа не может быть заменена. Если объект имеет свойство Строки типа, то присвоение нового Строкового объекта к тому свойству заставляет свойство изменяться (в моем исходном ответе, я назвал это переменным видоизменением, по-видимому, некоторые люди не соглашаются с использованием термина "видоизмен" в этом контексте).
WPF привязка данных системы может связать с этим свойством. Если это будет уведомлено, что свойство изменяется через INotifyPropertyChanged, то это обновит цель привязки, таким образом позволяя многим текстовым полям связать с тем же свойством и всем изменением на обновлении свойства, не требуя никакого дополнительного кода.
Поэтому нет никакой потребности использовать StringBuilder в качестве запоминающего устройства для свойства. Вместо этого можно использовать стандартное Свойство строки и реализовать INotifyPropertyChanged.
public class MyClass : INotifyPropertyChanged
{
private string myString;
public string MyString
{
get
{ return myString; }
set
{
myString = value;
OnPropertyChanged("MyString");
}
}
protected void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{ handler(this, new PropertyChangedEventArgs(propertyName)); }
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
WPF может связать с этим и автоматически возьмет и изменения, внесенные в значении свойства. Нет, Строковый объект не видоизменился, но Свойство строки видоизменилось (или изменилось, если Вы предпочитаете).
Вы могли наследовать текстовое поле и переопределить текстовое свойство, чтобы получить и записать в строкового разработчика.
Проще говоря, нет. Текстовое свойство только берет Строку. Так безотносительно источника, необходимо будет преобразовать его в Строку.
Чтобы позволить Вам легко установить его однажды для многих текстовых полей, у Вас может быть свойство класса, которое всегда устанавливает все значения текстового поля...
public string MyString
{
get
{
///...
}
set
{
textbox1.Text = value;
textbox2.Text = value;
//...
}
}
Я бы обернул StringBuilder
в пользовательский класс с методом Add
, методом Text
и событием OnChanged
.
Подключите метод Add
, чтобы при он вызывается, добавляет текст в экземпляр StringBuilder
и запускает событие. Затем, когда событие происходит, используйте метод Text
, чтобы создать ToString
в StringBuilder
.
public class StringBuilderWrapper
{
private StringBuilder _builder = new StringBuilder();
private EventHandler<EventArgs> TextChanged;
public void Add(string text)
{
_builder.Append(text);
if (TextChanged != null)
TextChanged(this, null);
}
public string Text
{
get { return _builder.ToString(); }
}
}
Можно связать текстовое свойство TextBox к свойству строки... Строковый объект неизменен, но переменная Строки типа совершенно изменяема...
string mutable = "I can be changed";
mutable = "see?";
Необходимо было бы обернуть его в объекте, который реализует INotifyPropertyChanged, как бы то ни было.