通过父UserControl从子控件传递数据绑定

时间:2014-06-25 22:34:29

标签: c# data-binding user-controls

我尝试使用richtextbox构建自定义用户控件(winforms),并希望传递" Text"通过usercontrol进行数据绑定,以便当控件放置在表单上并且绑定源绑定到用户控件时,文本"数据绑定,它实际上将绑定到子richtextbox" Text"捆绑。下面的代码位用于设置文本,但在更改后不会获得文本。

用户控制:

[System.ComponentModel.DefaultBindingProperty("Text")]
    public partial class UcEditableRTBox : UserControl
    {
        public UcEditableRTBox()
        {
            InitializeComponent();
            InitControl();
        }

        [Bindable(true)]
        public override string Text
        {
            get { return rtb.Text; }
            set { rtb.Text = value; }
        }

形式:

public partial class FrmTest : Form
    {
        public FrmTest()
        {
            InitializeComponent();
        }

        TestTable tt;

        private void FrmTest_Load(object sender, EventArgs e)
        {
            tt = TestTable.FindAll().FirstOrDefault();
            bindingSource.DataSource = tt;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            bindingSource.EndEdit();
            tt.Save();
        }
    }

非常感谢任何有关如何查看此资源或其他资源的提示。

由于

1 个答案:

答案 0 :(得分:0)

标准修复方法是使用Text以外的其他名称:

public string TextValue {
  get { return rtb.Text; }
  set { rtb.Text = value; }
}

有关其他解决方法的建议,请参阅Data Binding with a Custom UserControl’s Text Property