我正在创建一个UserControl,它是一个专门的ListBox / View(类型不相关)。现在,我面临着将类型保持为UserControl或继承List控件的选项。
1)如果我把它保存为UserControl,我在其中有一个List控件,然后我必须为ItemsSource创建一个DP,依此类推。
2)让它继承List控件,从而自动公开ItemsSource属性。
是否可接受或将成为Code Horror。期待什么。
可能有一个选项3我不知道了吗?
答案 0 :(得分:3)
我害怕没有一个正确的答案。相对优点是:
#1在List
中托管UserControl
<强>赞成强>
ListView
的某些功能,则可以通过不公开它来实现此目的。<强> CON外强>
ItemsSource
,ItemTemplate
属性等手动公开ListView的功能......但是,您可以将ListView
公开为UserControl的属性如果你愿意的话。 #2继承自ListView
<强>赞成强>
ListView
实例,则立即替换插件。ListView
。<强> CON外强>
ListView
。所以,这实际上取决于你想要达到的目标。就个人而言,如果你想要显着改变API,我会选择(1),例如专门针对特定用途的ListView。如果你要创建一个高度通用的扩展,我会去(2)。