Vorweg: Sorry für den blöden Titel, aber wie soll ich mein Problem kurz beschreiben? Wenn jemand nach dem Lesen was weiß, dann her damit.
Ich bin gerade dabei, meinen Help 2.0 Namespaces-Auflister für .NET umzubauen. Dabei muss ich einige Attribute abfragen, bspw. welche Hilfedatei und welche Indexdatei usw. zu einer bestimmten Id gehört. Angezeigt werden sollen natürlich dann das jeweilige Attribut und der ermittelte Wert. Der Einfachheit halber habe ich mir dazu folgendes gebaut:
Code:
public enum TitleProperty
{
TitleId,
TitleFileName, // Help document (*.HxS)
TitleIndexName, // Help index (*.HxI)
TitleQueryName,
AttrQueryName,
TitleLangId,
TitleHxsMediaLoc,
TitleHxqMediaLoc,
TitleHxrMediaLoc,
TitleSampleMediaLoc
}
//
// Und ein Stück aus der dazu gehörenden Klasse
//
public string GetProperty(string propertyName)
{
try {
HxRegTitlePropId property = (HxRegTitlePropId)Enum.Parse(typeof(HxRegTitlePropId),
propertyName);
object result = this.help2Document.GetProperty(property);
return result.ToString();
}
catch {
return "";
}
}
Bislang mache ich das dann eben so: Ich erzeuge einen Eintrag in der List-View, der den Namen des o.g. Attributes (s.
enum) enthält. Das tatsächliche Attribut würde aber mit "HxReg" beginnen (also
HxRegTitleFileName), aber das hätte in der Liste nicht so toll ausgesehen:
Code:
foreach(TitleProperty property in document.TitleProperties) {
ListViewItem lvi = new ListViewItem(property.ToString());
lvi.SubItems.Add(document.GetProperty(String.Format("HxReg{0}", property.ToString())));
lv1.Items.Add(lvi);
}
Gibt´s eine einfache und saubere Möglichkeit, die o.g. Attributnamen vllt. doch durch Klartext zu ersetzen? So soll aus "TitleFileName" einfach "Help document (*.hxs)" werden. Wie gesagt, irgendeine Idee, auf die ich gerade nicht komme? So was wie ein
enum von Strings, das man dann zuordnen kann?