2015-10-05 3 views
-1

У меня есть список работодателей, которые привязаны к данным и заполняются из специальной формы. Когда я иду в форму, у меня есть все текстовые поля. Я заполняю их все и сохраняю список новых работодателей. Но если я пытаюсь добавить нового работодателя, у меня есть текстовые поля с предыдущим текстом в форме. И переменные, которые привязаны к текстовым полям в форме, равны нулю. Есть ли способ решить проблему без использования такого решения: Textbox.text = null ;? Я использую шаблон MVVM в своем приложении. Я также использую фрагменты catel для определения viewmodel и свойств. Существует код ViewModel страницы со свойствами работодателя:Текстовые поля не очищаются при загрузке страницы

public EmployerModifyViewModel(TransferParameter parameter, IEmployersListManage employersListManager) 
{ 
    //in "parameter" I pass values fo Current employer (it can be empty 
    //if we need to add new object to list or it can be some employer from list) 
    _employersListManager = employersListManager; 
    SaveEmployerCommand = new Command(OnSaveEmployerCommandExecute); 
    CanselSavingCommand = new Command(OnCanselSavingCommandExecute); 
    if (parameter.Value is EmployerClass) 
    { 
     CurrentEmployer = parameter.Value as EmployerClass; 
    } 
} 

public EmployerClass CurrentEmployer 
{ 
    get { return GetValue<EmployerClass>(CurrentEmployerProperty); } 
    private set { SetValue(CurrentEmployerProperty, value); } 
} 

/// <summary> 
/// Register the CurrentEmployerBase property so it is known in the class. 
/// </summary> 
public static readonly PropertyData CurrentEmployerProperty = RegisterProperty("CurrentEmployer", typeof(EmployerClass), new EmployerClass()); 

Существует пример привязки к свойствам в XAML:

<ContentControl Content="{Binding CurrentEmployer, Mode=TwoWay}"> 
    <ContentCntrol.Recources> 
     <DataTemplate DataType="{x:Type employer:EmployerClass}"> 
... 
      <TextBox Grid.Column="1" 
        x:Name="EmpName" 
        Width="300" 
        Height="30" 
        FontSize="14" 
        Text="{Binding Name, Mode=TwoWay}" //Property "Name" of CurrentEmployer 
        HorizontalAlignment="Left" 
        Margin="20,20,0,0"/> 
+1

Показать привязки и то, как вы определяете свои свойства в модели. Правильно ли вы используете INotifyPropertyChanged, если у вас есть привязка TwoWay? –

+0

есть в шаблоне? может быть шаблон повторно используется! – Muds

+0

Хорошо, я исправил свой вопрос и добавил более подробную информацию. Спасибо за внимание – Max

ответ

0

Благодарим вас, проблема решена. Я удалил ContentControl и DataTemplate из xaml, и я сделал привязки вроде этого "{Binding CurrentEmployer.Name, Mode=TwoWay}".

0

Я думаю, что и должны использовать следующий код, где и добавить новый сотрудник. Каждый раз, когда нажимается кнопка, текстовые поля пустуют.

  txtbox_1.Text = String.Empty; 
      txtbox_2.Text = String.Empty; 
      .............  
Смежные вопросы