【问题标题】:Binding a user control text property in code-behind在代码隐藏中绑定用户控件文本属性
【发布时间】:2014-04-18 10:21:24
【问题描述】:

我正在尝试创建一个继承自 TextBox 控件的自定义控件。在我的自定义控件的构造函数中,我需要绑定文本属性。这是我现在使用的代码。

var binding = new Binding("Name");
binding.Mode = BindingMode.TwoWay;
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
binding.ValidatesOnDataErrors = true;
SetValue(TextProperty, binding);

我没有设置绑定源,因为我希望它是放置我的自定义控件的表单的 DataContext 但是我想我做错了,因为当我添加到表单上时面对 xaml 中的错误消息:“System.Windows.Data.Binding 不是属性文本的有效值。

【问题讨论】:

    标签: c# wpf binding user-controls


    【解决方案1】:

    在代码隐藏中做不好,希望这能回答你的问题

    Binding binding = new Binding();
    binding.Path = new PropertyPath("yourPropertyTobeBinded");
    binding.Source = sourceObject;
    BindingOperations.SetBinding(youTextBox, TextBox.TextProperty, binding);
    

    【讨论】:

    • 是的,实际上我必须通过 SetBinding 而不是 SetValue 来完成。非常感谢。
    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 2012-04-25
    • 2012-02-04
    • 2019-01-03
    • 1970-01-01
    • 2013-03-06
    • 2013-10-17
    • 1970-01-01
    相关资源
    最近更新 更多