【发布时间】:2012-08-30 15:16:44
【问题描述】:
我有一个包含一个字符串的类,该字符串用于存储多个值(根据 xml 描述考虑)和 [] 的覆盖以将值放入字符串并获取它。
class Entity
{
private String _Data;
public String Data
{
get { return (String)_Data; }
set { _Data=value;}
}
public Object this[String propertyname]
{
get
{
return GetPropertyValue(propertyname);
}
set
{
SetPropertyValue(propertyname,Value);
}
}
private String GetPropertyValue(String propname)
{
if (Data == null) return "";
String fbalise = "<" + propname + ">";
int indexstart = Data.IndexOf(fbalise);
if (indexstart == -1)
//throw new Exception("Cannot Get Value because balise for " + propname + " does not exist");
return null;
indexstart += fbalise.Length;
String ebalise = "</" + propname + ">";
int caraclength = Data.IndexOf(ebalise, indexstart) - indexstart;
return Data.Substring(indexstart, caraclength);
}
private void SetPropertyValue(String propname, String valuetoinsert)
{
if (Data == null) Data = "";
String fbalise = "<" + propname + ">";
String ebalise = "</" + propname + ">";
int indexstart = Data.IndexOf(fbalise);
if (indexstart == -1)
{
indexstart = Data.Length;
Data = Data + fbalise + ebalise;
}
indexstart += fbalise.Length;
int caraclength = Data.IndexOf(ebalise, indexstart) - indexstart;
String lastvalue = Data.Substring(indexstart, caraclength);
if (lastvalue != valuetoinsert)
{
Data = Data.Remove(indexstart, caraclength);
Data = Data.Insert(indexstart, valuetoinsert);
}
}
}
现在我有一个List<Entity>,我想通过设置gridview 的数据源来绑定到gridview。
绑定后,它只将数据显示为包含我所有文本的列。 (这很正常,我可以接受,这是正常规则)但是是否可以指定我的绑定,而不是研究属性,使用 [] 来获取数据并将其绑定到适当的列(例如,如果我有列“名称”,调用 entity["Name"] 而不是 entity.Name 不存在.....
【问题讨论】:
-
您可以看看 Mark Gravell 对这个 SO 问题的回答:stackoverflow.com/questions/882214/data-binding-dynamic-data
-
tx itsmatt,似乎是答案...对于其他它通常称为属性包...我在谷歌搜索时不知道确切的术语
标签: c# .net winforms gridview binding