如何避免长开关

时间:2014-04-07 14:07:12

标签: c# wpf oop

我有一张桌子

ID Name
1  New York
2  California
3  Maine
4  Ohio
5  Washington

我可以根据用户传入的ID找到匹配项。

但是我希望能够根据传入的ID调用WPF视图。

如何避免编写长开关语句?

2 个答案:

答案 0 :(得分:1)

我不确定您是否理解您的问题,但如果您需要能够针对特定城市调用特定视图,则最简单的方法是将这些信息存储在您的数据中。您可以向cities表中添加一列,或者创建另一个要加入的表,其中包含该城市是否应该获得自定义视图。从那里,使用反射来旋转你需要的视图。

答案 1 :(得分:0)

制作字典

Dictionary<int,View> dictionary=new Dictionary<int,View>();
dictionary.Add(1,new NewYorkView());
dictionary.Add(2,new California());

或只是一个列表

Type[] viewTypes=new Type[null,typeof(NewYorkView),typeof(CaliforniaView),,,,,];

当您收到ID时:

dictionary[ID].Show();