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

时间:2016-07-22 19:02:41

标签: c# wpf data-binding user-controls

试图找到一些类似问题的引用,但没有一个引导我解决我的问题。 我有一个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 。测试'"

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

1 个答案:

答案 0 :(得分:0)

问题的正确答案是:
在必要的控制器(NewProjectStep1View)上,使用更新的变量值创建原始UserController(ProjectWizardProgressBar)的新子实例。 代码如下:

text/xml


希望它会有所帮助。