Straying away from the UI design question for a second, I would suggest making sure that it's clear to your users what the relationship is between the size names and the numbers. If the sizes are supposed to map to numbers, this mapping should probably be explicit, otherwise users (especially inexperienced ones) might be confused by the fact that you're presenting them two disparate sets of options for the same input.
So, consider changing the labels of the sizes to something like "Small (3)" or "3 - Small" or whatever, so the mapping will be totally clear and users can choose confidently.
If the sizes don't really map to numbers, perhaps they should be separate controls, and users should be asked explicitly to decide which type of input to provide. For instance, a normal dropdown could be the default control, with a checkbox nearby that says "provide a number instead," and when that is checked the control is replaced with a number input, signifying that a number will be used instead of the sizes (whatever that means).
On to the control itself. The pattern you're suggesting is very similar to an existing Windows control type: the Combo Box. From MSDN's documentation:
The list presents the options that a user can select, and the selection field displays the current selection. If the selection field is an edit control, the user can enter information not available in the list; otherwise, the user can only select items in the list.
So, if your project is using Microsoft's framework (you mentioned it was a Windows app) the control may already be built-in and ready to go for you. If you're using something else, I'd recommend following the patterns established by Microsoft with this control, since it will probably be familiar to some users. But, to reiterate, I think the biggest potential usability problem with your solution isn't the layout or functionality of the control itself, it's the way you're presenting two different types of information as options for a single input.