複数の値を格納するために使用される文字列(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>
、グリッドビューのデータソースを設定して、グリッドビューにバインドしたいことがあります。
バインディングの後、すべてのテキストを含む列としてデータを表示するだけです。(それは正常です、私はそれで大丈夫です、それは通常のルールです)しかし、研究プロパティの代わりに、[]を使用してデータを取得し、適切な列にバインドすることを指定することは可能ですか(たとえば、列「名前」、存在しないエンティティ.名前の代わりにエンティティ[「名前」]を呼び出す.....