Laden...

C#, Outlook 2010, Ordnerfelder in Itemfelder kopieren

Erstellt von habalulu vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.963 Views
H
habalulu Themenstarter:in
5 Beiträge seit 2015
vor 8 Jahren
C#, Outlook 2010, Ordnerfelder in Itemfelder kopieren

Hallo Forum,

ich habe folgendes Problem und finde im Netz irgendwie nicht die richtige Lösung.

Ich habe einen Ordner mit einem benutzerdefiniertem Feld.
Dieses Feld ist in den Items des Ordners nicht vorhanden.
Es wird aber in Outlook in der Feldauswahl als benutzerdefiniertes Ordnerfeld angezeigt.
Der Inhalt erscheint in Outlook dann auch bei den Items (Tabellenansicht) mit Inhalt.

Also habe ich das Feld als Itemfeld neu erstellt.

Wie kopiere ich in c# den Inhalt des Ordnerfeldes in das Itemfeld?

Folgendes habe ich bisher:



//Parent-Ordner bestimmen
Outlook.MAPIFolder mf = this.item.Parent;
string path = mf.FolderPath;

if (mf.UserDefinedProperties.Find("Bezeichnung") != null)
{
   if (this.item.UserProperties.Find("Bezeichnung") == null)
   {
      //"Bezeichnung" als Itemfeld hinzufügen, als Ordnerfeld ist es vorhanden
      this.item.UserProperties.Add("Bezeichnung", Outlook.OlUserPropertyType.olText, false);

      //Inhalt des Ordnerfeldes ins Itemfeld kopieren
      //FUNKTIONIERT NICHT
      this.item.UserProperties["Bezeichnung"].Value = mf.UserDefinedProperties["Bezeichnung"].Value;
   }
}


Das zugrundeliegende Problem ist hier beschrieben:
http://www.outlook-stuff.com/editcontacts/854-benutzerdefinierte-felder-fehlen.html

Die Items wurden aus einem anderen Ordner kopiert.

Für einen Hinweis oder einen Link wäre ich dankbar.

M
53 Beiträge seit 2008
vor 8 Jahren

Moin habalulu,

was bedeutet funktioniert nicht? Kommt eine Fehlermeldung? Funktioniert das auslesen nicht oder funktioniert das schreiben des neuen Werts nicht?

Gruß
muhtanten

H
habalulu Themenstarter:in
5 Beiträge seit 2015
vor 8 Jahren

Hallo muhtanten.

Funktioniert nicht bedeutet, daß das Feld einfach Leer ist.

Das Feld ist also auf Ordnerebene vorhanden, aber nicht im Item.
Ich lege es dann auf Itemebene an, dann ist es aber leer,
obwohl es in Outlook einen Wert enthält, der auch von Outlook
angezeigt wird.
Ich komme also an den Wert nicht heran.

mf.UserDefinedProperties["Bezeichnung"].Value funktioniert nicht,
weil die UserDefinedProperties keinen .Value-Wert kennen.

Wie komme ich an den Inhalt der Felder auf Ordnerebene?

Danke schon einmal für Deine Hilfe

M
53 Beiträge seit 2008
vor 8 Jahren

Der Ordner enthält lediglich die Definition der Eigenschaft. Die eigentlichen Inhalte findest du dann in den Userproperties der Items dieses Ordners.
Die Items deines Folders 'mf' haben ein Userproperty 'Bezeichnung' mit dem entsprechenden Werten siehe auch UserDefinedProperty

Gruß
muhtanten