I wonder why too. As far as I know the BO property is an int, but the combo's selectedvalue is a string. I had assumed that it was a quirk of combos that the selectedvalue is always a string. I'll try to dig a bit more into this and see what I can work out.
>
>Thanks Bonnie,
>>
>>that did the trick.>
>You're welcome, Frank! Glad I could help. =0)
>
>Although, I *do* wonder why you're binding an int to a string property in your BO. I would think that your BO property would be an int also.
>
>~~Bonnie
>
>
>
>>
>>>You could use this:
>>>
>>>
if (this.cboStatus.SelectedValue == ((int)Policy.StatusCode.DeathNotice).ToString())
>>>
>>>~~Bonnie
>>>
>>>
>>>
>>>>I think I made a wrong assumption using these enums.
>>>>
>>>>I now want to compare the selectedvalue of a drop down list with the value of the enum. How do I do that?
>>>>
>>>>My code used to be like this:
>>>>
>>>>
if (this.cboStatus.SelectedValue == "7")
>>>>
>>>>and that worked, but I don't like magic numbers so wanted to code it like this:
>>>>
>>>>
if (this.cboStatus.SelectedValue == Policy.StatusCode.DeathNotice.ToString())
>>>>
>>>>thinking that Policy.StatusCode.DeathNotice.ToString() would bring back "7", but it doesn't, it returns "DeathNotice"!
>>>>
>>>>>>On another note, just an FYI: it's not necessary to provide a number for your Enums (Pending = 1), they will default to numbers in the order you've written, starting at 0. If you want yours to start at 1, as you've shown below, or if you need a different numbering scheme for some reason, then you would have to explicitly define them as you did.
>>>>>
>>>>>Strictly speaking it would only be neccessary to define the value for the first item, the rest will still increment. You can also skip as below ( and save 24bits by using a byte):
enum StatusCode : byte
>>>>> {
>>>>> Pending = 1,
>>>>> InForce,
>>>>> Withdrawn,
>>>>> Postponed,
>>>>> Deferred,
>>>>> Cancelled =100,
>>>>> Claimed,
>>>>> Matured,
>>>>> Lapsed,
>>>>> Surrendered,
>>>>> DeathNotice
>>>>> }
>>>>>
>>>>>
>>>>>>>Hi,
>>>>>>>
>>>>>>>I have an enum defined in a partial class of a Business Object (all my BOs are in one project) like this:
>>>>>>>
>>>>>>>
enum StatusCode
>>>>>>> {
>>>>>>> Pending = 1,
>>>>>>> InForce = 2,
>>>>>>> Withdrawn = 3,
>>>>>>> Postponed = 4,
>>>>>>> Deferred = 5,
>>>>>>> Cancelled = 6,
>>>>>>> Claimed = 7,
>>>>>>> Matured = 8,
>>>>>>> Lapsed = 9,
>>>>>>> Surrendered = 10,
>>>>>>> DeathNotice = 11
>>>>>>> }
>>>>>>>
>>>>>>>This lets me refer to the enum in code in the partial class no problem, like this:
>>>>>>>
>>>>>>>
this.Entity.Status = StatusCode.Pending;
>>>>>>>
>>>>>>>However, if I want to use this enum in the interface project (separate to the BO project, but part of the overall solution) I can't as the compiler does not recognise it. Is there some way to make this enum available outside of the BO? Or is this bad design?