在自定义控件的属性上添加 BindableAttribute 的目的是什么?

Cha*_*nns 5 c# vb.net asp.net custom-controls

我已经看到 BindableAttribute 用于装饰自定义控件中的公共属性。

MSDN简单提到它提供了在设计时控制绑定方向以及是否支持绑定的能力。

public class MyControl : Panel
{
    [Bindable(BindableSupport.No, BindingDirection.OneWay)]
    public string MyString { get; set; }
}

var myControl = new MyControl();
var myString = myControl.MyString;
Run Code Online (Sandbox Code Playgroud)

问题:

1) 我设置BindableSupport为“否”,但我仍然可以在标记 (.aspx) 中执行此操作。BindableSupport那有什么影响呢?它是否隐藏工具箱中的属性?

<cc:MyControl runat="server" MyString="something" />
Run Code Online (Sandbox Code Playgroud)

2) 单向绑定和双向绑定如何在自定义控件和 ASP.NET 上下文中工作?

将不胜感激任何意见。

Cha*_*nns 1

到目前为止我的发现:

1)BindableSupport与 ASP.NET 提供的数据绑定功能相关。例如Page.DataBind()<%# Bind("MyProperty") %><%# Eval ("MyProperty") %>等。@walther 的回答+1。

2) ASP.NET 中的双向绑定能够在回发时保留对数据绑定值的修改。此SO 线程提供了更多详细信息。Bind是双向的,而Eval是单向的。