0

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

下面是我的代码。谢谢

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

    public UserRoleDetails()
    {
        InitializeComponent();

        this.txtRoleTitle.Text = labelName;
    }

}

4

3 回答 3

0

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

其次,您应该将 labelName 属性设置为 notify 属性。

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

好吧,你完成了。

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

于 2013-05-02T19:27:23.887 回答
0

我看了一下依赖属性解决方案。尽管如果实施得当,这可能会起作用,但对于我正在尝试做的事情,这是一个矫枉过正的解决方案。所以我有一个现在可以使用的简单解决方案,请参见下面的代码:

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

    public UserRoleDetails()
    {
        InitializeComponent();
    }
}
于 2013-05-03T09:26:00.607 回答
0

您正在构造函数中设置 txtRoleTitle.Text 的值,在分配时 labelName 属性将没有值。

我认为您需要考虑使您的 labelName 成为依赖属性并将您的 txtRoleTitle 控件绑定到用户控件的 xaml 中。看看这个例子:http ://stevenhollidge.blogspot.co.uk/2012/03/dependency-properties-in-user-control.html

于 2013-05-02T17:03:30.570 回答