2016-07-22 16 views
0

Пробовал найти ссылки на похожие вопросы, но ни один из них не привел меня к решению моей проблемы. У меня есть UserControl - ProjectWizardProgressBar, в котором я объявляю и использую переменную. Это выглядит следующим образом:Назначить объявленную переменную UserControl в другой UserControl

namespace Todiste.Views.Proyectos.ProjectWizardProgressBar 
public partial class ProjectWizardProgressBar : UserControl, INotifyPropertyChanged 
{ 
private string _test; 
    public string test 
    { 
     get { return _test; } 
     set 
     { 
      if (value != _test) 
      { 
       _test = value; 
       OnPropertyChanged("test"); 
      } 
     } 
    } 
public ProjectWizardProgressBar() 
    { 
     InitializeComponent(); 
     DataContext = this;    
     test = "This is a test dummy"; 
    } 
... 
} 

Этот элемент управления пользователя Я использую в другом UserControl - NewProjectStep1View, в котором я должен повторно назначить тест переменной. В некотором смысле, как это:

namespace Todiste.Views.Proyectos.NewProjectWizard 
{ 

public partial class NewProjectStep1View : UserControl, INewProjectWizardStep 
{ 
public void OnStepLoaded() 
    { 
     ProjectWizardProgressBar.ProjectWizardProgressBar.test = "This is an updated test text" ;    

    } 
... 
} 

В этот момент, когда я вновь назначить переменную, как это, я получаю:
«Ссылка на объект взыскательных для нестатическая поля, метода или свойства ' ProjectWizardProgressBar.test».

Будет очень благодарен за помощь в понимании этого типа привязки данных.

ответ

0

Правильный ответ на вопрос будет:
На нужном контроллере (NewProjectStep1View) создайте новый дочерний экземпляр исходного UserController (ProjectWizardProgressBar) с обновленным значением переменной. код ниже:

namespace Todiste.Views.Proyectos.NewProjectWizard 
{ 

public partial class NewProjectStep1View : UserControl, INewProjectWizardStep 
{ 
public void OnStepLoaded() 
{ 
    ProjectWizardProgressBar progressBar = new ProjectWizardProgressBar(); 
    progressBar.test = "This is an updated test text";  

} 
... 
} 


Надеюсь, что это было бы полезно.

Смежные вопросы