I was asked the other week how I'd implement a view-model that binds to two combo boxes in the view, where a selection in one affects the other. I've called it category & sub-category combo boxes but I guess it could also be called parent-child combo boxes. Now I don't perceive this as particularly complex to do, but I was asked how would I do it? Would I use two seperate lists and how would I avoid stack overflow exceptions when raising property changed events. The UI looks like this: The categories are represented by the top combo box: The sub categories are represented by the bottom combo box: You should be able to infer from the screen shots that each category has a set of sub-categories, the only special category is All - when selected then all sub categories are displayed, as shown above. So when Category A is selected then only the related sub-categories should be displayed: I used a dictionary & linq to achieve the behaviour required...