如何确定哪个属性是数据绑定的默认属性?

给出具有多个可绑定属性的X类,我如何确定哪个属性应该是通过反射选择的默认属性?

在Winforms设计器中,可以选择“数据绑定”。 Visual Studio如何确定“ Editvalue”应为要绑定的默认属性,而不是说“ Text”?

如何确定哪个属性是数据绑定的默认属性?

我已经知道如何从对象中获取属性和属性,但是我错过了一些告诉我默认使用哪个属性的东西。

karymxk 回答:如何确定哪个属性是数据绑定的默认属性?

您可以依赖类的DefaultBindingProperty属性。

例如,DateTimePicker[DefaultBindingProperty("Value")]装饰,而ComboBox[DefaultBindingProperty("Text")]装饰。

您可以创建如下函数,以获取控件的默认绑定属性的名称:

public string GetDefaultBindingPropertyValue(Control c)
{
    var att = c.GetType().GetCustomAttributes(true)
        .OfType<DefaultBindingProperty>().FirstOrDefault();
    return att?.Name;
}

旁注

对于某些复杂的情况,您可能也对这些属性感兴趣:

  • LookupBindingProperties:指定支持基于查找的绑定的属性。像ComboBoxListBox这样的列表控件都由[LookupBindingProperties("DataSource","DisplayMember","ValueMember","SelectedValue")]这个属性修饰。

  • ComplexBindingProperties:为支持复杂数据绑定的组件指定数据源和数据成员属性。 DataGridView已为此属性[ComplexBindingProperties("DataSource","DataMember")]装饰。

本文链接:https://www.f2er.com/3139323.html

大家都在问