How to: Use complex objects as token values

  • 2 minutes to read

The code below illustrates how to override the ToString() method for complex objects, stored as the TokenEditToken values.

//#1
//Overriding the ToString() method
public class Customer {
    public int ID { get; set; }
    public string Name { get; set; }

    public Customer(Int32 id, string name) {
        this.ID = id;
        this.Name = name;
    }

    public override string ToString() {
        return ID.ToString();
    }
}


public partial class MainForm : XtraForm {
    . . .
        tokenEdit1.Properties.Tokens.Add(new TokenEditToken("Mary", new Customer(1, "Mary")));
        tokenEdit1.Properties.Tokens.Add(new TokenEditToken("John", new Customer(2, "John")));
        tokenEdit1.Properties.Tokens.Add(new TokenEditToken("David", new Customer(3, "David")));
}

//#2
//Assigning a unique token value
public class Customer {
    public int ID { get; set; }
    public string Name { get; set; }
    }
}

public partial class MainForm : XtraForm {
    . . .
        List<Customer> Customers = new List<Customer>();
        Customers.Add(new Customer() { ID = 1, Name = "John" });
        Customers.Add(new Customer() { ID = 2, Name = "Mary" });
        Customers.Add(new Customer() { ID = 3, Name = "David" });
        foreach (Customer customer in Customers) {
            tokenEdit1.Properties.Tokens.Add(new TokenEditToken(customer.Name, customer.ID));
        }
    }
}