将 UserControl 声明的变量分配给另一个 UserControl

Assign UserControl declared variable, into another UserControl

试图找到一些类似问题的参考,但其中 none 引导我解决了我的问题。 我有一个 UserControl - ProjectWizardProgressBar,我在其中声明并使用了一个变量。它看起来像这样:

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";
    }
...
}

我在另一个用户控件 - NewProjectStep1View 中使用的这个用户控件,我必须在其中重新分配变量测试。像这样:

namespace Todiste.Views.Proyectos.NewProjectWizard
{

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

    }
...
}

此刻,当我像这样重新分配变量时,我得到:
"An object reference is requiered for the non-static field, method, or property 'ProjectWizardProgressBar.test'".

非常感谢帮助我理解这种类型的数据绑定。

问题的正确答案是:
在必要的控制器 (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";    

}
...
}


希望对你有帮助。