欢迎来到天天文库
浏览记录
ID:34727176
大小:286.68 KB
页数:14页
时间:2019-03-10
《wpf自定义itemscontrol控件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、该控件叫Summary,主要是一些汇总信息的显示,有几个地方用,之前都是分散到各个XAML文件里,不统一。 本人WPF新手,对XAML了解不多,做这个软件基本上都是用CM,界面布局用AvalonDock。由于缺乏相关经验,又没有一个能问得上的人指导,写这个控件费了我很长时间(啥时有空啥时动动)。之前主要做一些功能方面的,没有心思美化界面,现在虽然还有很多功能没写,但是基本上够自己用了,放下心思来做一些界面上的东西,要不然何苦选择WPF? 先看一下图: 该CustomControl由4部分组成:大标题,小标题,值及Detail。虽然细分这么多,但实质上还是一个列表类的控件,所以选
2、择继承自ItemsControl. 做这个控件的时候,遇到了一些详细的问题不知道怎么解决,Google/Bing都没有找到我要了解的,Baidu更不用提了,漫天的转载,Copy. 1,类似ComboBox的DisplayMemberPath如何弄?既然都自定控件了,当然是想让它适用不同场景,不能局限于某一个实体类,最好是能像DisplayMemberPathwww.ipb.ccValueMemberPath这样的属性。这里,我定义了:ItemTitlePathProperty及ItemValuePathProperty来处理。 2,有了上面两个依赖属性,但是还不足以处理更多的场
3、景,最好是能有不同的Template。这里我定义了:TitleTemplate/ValueTemplate及DetailTemplate. 第一个问题,只需定义一个简单的DataTemplate,然后用TemplateBinding即可做到。但是要和第二个问题结合在一起,就牵扯到模板切换及数据切换的问题,因为第一问题所用的数据被指定为某实体类的某个属性,第二个问题的数据要指定为整个实体。解决第一个问题,需要重写PrepareContainerForItemOverride方法,第二个需要重写OnApplyTemplate 不多说了,怕误导大家,毕竟,我懂的不多,上代码,供参考:
4、模板文件:1567895、aTemplate>101112131415161718196、ate">2021222627287、0,0"Background="#10a8ab">2930www.78name.com31
5、aTemplate>101112131415161718196、ate">2021222627287、0,0"Background="#10a8ab">2930www.78name.com31
6、ate">2021222627287、0,0"Background="#10a8ab">2930www.78name.com31
7、0,0"Background="#10a8ab">2930www.78name.com31
此文档下载收益归作者所有