来自同一usercontrol的多个实例传递值

时间:2015-08-11 13:56:32

标签: c# wpf user-controls

同一用户控件有2个实例。事件处理程序附加在usercontrol中的按钮上。

我从usercontrol_1调用事件处理程序,在文本框中显示来自usercontrol_1的值,但两个用户控件都在文本框中显示值。

private void CalculatorInput_Click(object sender, RoutedEventArgs e)
{
    InputBox.Text = "1";
}

1 个答案:

答案 0 :(得分:0)

您提到与发件人合作,但您尝试过这样的事情:

private void CalculatorInput_Click(object sender, RoutedEventArgs e)
{
    var control = sender as YourCustomControlType;
    if (control == null)
        return;

    control.InputBox.Text = "1";
}

另一个好的做法是,不是暴露控件的子控件(InputBox),而是在控件上创建一个公共属性来获取/设置该值的文本,因此您的实现代码将如下所示: p>

control.DisplayText = "1";

你的控制getter / setter:

public string DisplayText
{
    get { return this.InputBox.Text; }
    set { this.InputBox.Text = value; }
}