将 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";
}
...
}
希望对你有帮助。
试图找到一些类似问题的参考,但其中 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";
}
...
}
希望对你有帮助。