Я работаю над silverlight. Я создал TextBox, и когда пользователь менял любой текст, он должен показывать «*» в верхней части файла и который должен исчезнуть при нажатии кнопки «Сохранить».Почему многократно вызывается конструктор?
Мой код отлично работает для одного текстового поля, но когда я создаю второй текстовый блок (после первого), то обнаружил, что конструктор вызывается два раза вместо одного. И когда я создаю третий текстовый блок (после двух), конструктор вызывается 3 раза вместо одного. (это текстовое поле создается нажатием кнопки в моем графическом интерфейсе динамически, на котором есть текст, написанный на нем, и когда я делаю некоторые изменения в этом тексте, тогда он показывает «*» сверху и который исчезает при его сохранении).
Принимая во внимание, что он будет вызываться 1 раз, если я добавлю 1 текстовое поле за раз. Мой код, чтобы сделать так:
private bool modified;
public bool Modified
{
get { return modified; }
set { modified = value; OnPropertyChanged("Modified"); }
}
public ClassConstructor(AnotherClass pv)
{
MessageBox.Show("Number of call check");
setStar(false);
this.isModified = false;
}
private void setStar(bool modified)
{
Tab = this.FileName;
if (modified == false)
{
Tab += "";
}
else
{
Tab += " *";
}
Modified = modified;
}
public void TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = (TextBox) sender;
setStar(!TextData.Equals(tb.Text));
}
public void SaveCode(object para)
{
TextData.txt = txt;
setStar(false);
}
Почему этот конструктор вызывается так много раз? (Я имею в виду, почему мой MessageBox для раз, если я создаю четвертое текстовое поле)?
'конструктор класс DelegateCommand', что он делает? Я подозреваю, что вы не удаляете методы из делегатов. – Arjuna
Кажется, что проблема находится в другой части кода. – Stilgar
@ Commjuna delegatecommand сохраняет изменения, сделанные в текстовом поле пользователем динамически, тогда как отмена отменяет текстовое поле. – Sss