Silverlight:我如何将一个usercontrol的属性值分配给一个文本框?

问题描述:

我有一个用户控件,我已经添加到Silverlight中的外部窗体。用户控件有一个名为txtRoleTitle的文本框,我已经在usercontrol的类中声明了一个名为lableName的属性,并将txtRoleTitle.text分配给labelName,如下面的代码所示,在silverlight属性面板中的 下,杂项菜单下,我已设置labelName为“Landlord”,然后将此用户控件的另一个添加到外形,并将其labelName设置为Tenant。但是,当我运行silverlight对话时,这似乎不起作用。在设计和运行时,labelName的值不会出现在文本框中。Silverlight:我如何将一个usercontrol的属性值分配给一个文本框?

这是我的代码如下。感谢

public partial class UserRoleDetails : UserControl 
{ 
    public string labelName { get; set; } 

    public UserRoleDetails() 
    { 
     InitializeComponent(); 

     this.txtRoleTitle.Text = labelName; 
    } 

}

我看了一下属性扶养解决方案。虽然这可能工作,如果正确实施,对于我想要做的,这是一个矫枉过正的解决方案。所以我现在有一个简单的解决方案,看下面的代码:

public partial class UserRoleDetails : UserControl 
{ 
    public string labelName 
    { 
     get {return this.txtRoleTitle.Text;} 
     set {this.txtRoleTitle.Text = value;} 
    } 

    public UserRoleDetails() 
    { 
     InitializeComponent(); 
    } 
} 

要设置txtRoleTitle.Text的价值在你的构造,在分配的标签属性将不会有一个价值点。

我认为你需要看看如何让你的labelName成为一个依赖属性,并绑定你的用户控件的xaml中的txtRoleTitle控件。看看这个例子:http://stevenhollidge.blogspot.co.uk/2012/03/dependency-properties-in-user-control.html

首先,你的类应该实现INotifyPropertyChanged接口

其次,你应该让标签财产作为财产通知。

第三,你应该将txtRoleTitle的text属性绑定到你的notify属性。

好的,你完成了。

样品:http://social.msdn.microsoft.com/Forums/en-US/silverlightcontrols/thread/052a2b67-20fc-4f6a-84db-07c85ceb3303/