试图找到一些类似问题的引用,但没有一个引导我解决我的问题。 我有一个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";
}
...
}
这个用户控件我在另一个UserControl中使用 - NewProjectStep1View,我必须在其中重新分配变量test。用这样的方式:
namespace Todiste.Views.Proyectos.NewProjectWizard
{
public partial class NewProjectStep1View : UserControl, INewProjectWizardStep
{
public void OnStepLoaded()
{
ProjectWizardProgressBar.ProjectWizardProgressBar.test = "This is an updated test text" ;
}
...
}
此时,当我重新分配这样的变量时,我得到:"对于非静态字段,方法或属性,需要一个对象引用' ProjectWizardProgressBar 。测试'"
非常感谢您帮助我理解这种类型的数据绑定。
答案 0 :(得分:0)
问题的正确答案是:
在必要的控制器(NewProjectStep1View)上,使用更新的变量值创建原始UserController(ProjectWizardProgressBar)的新子实例。
代码如下:
text/xml
希望它会有所帮助。