none
在ListView中,使用自定义的ListViewItem类 RRS feed

  • 问题

  • 请问,我想在扩展的ListView中使用自己扩展的ListViewItem类,因为我想在扩展的ListViewItem类中,加入一些自定义属性。而不是我重写ListViewItem的ControlTemplate。 请问,ListView是怎么创建ListViewItem的,那个方法在哪里?或者是,我能重写生成ListViewItem项的方法吗? 或者是有什么方法可以反编译Win10源码?我用ISpy和.Net Reflector都试过了,并不能得到完整的源码。

    中学为体,西学为用。

    2015年9月19日 1:30

答案

  • 谢谢您的答复,不过您的回答并不是解决我的问题。我之前的疑惑是,我写了一个ListView继承自系统ListView,如果我想写一个自定义的ListViewItem,那么,我需要知道在系统的ListView中,是在哪里创建ListViewItem的。

    现在,我的问题已经解决了。

    GetContainerForItemOverride ,我重写了这个基类方法,然后return 我自定义的ListViewItem类。


    中学为体,西学为用。

    • 已标记为答案 Sago.Su 2015年9月22日 8:53
    2015年9月22日 8:53

全部回复

  • 一方面你需要有ListViewItem的模板样式,然后进行修改。另一方面,你需要继承SelectorItem 去实现你自己的ListViewItem 或者直接继承 ListViewItem。 但这并不能修改ListViewItem internal方法,它并不会向你暴露。

    如果你只需要添加你自己的自定义属性,依赖属性,则直接继承ListViewItem  即可。 然后在ListView中将你自己的ListViewItem放入


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    • 已建议为答案 Jie Bao 2015年9月23日 8:18
    2015年9月22日 8:46
  • 谢谢您的答复,不过您的回答并不是解决我的问题。我之前的疑惑是,我写了一个ListView继承自系统ListView,如果我想写一个自定义的ListViewItem,那么,我需要知道在系统的ListView中,是在哪里创建ListViewItem的。

    现在,我的问题已经解决了。

    GetContainerForItemOverride ,我重写了这个基类方法,然后return 我自定义的ListViewItem类。


    中学为体,西学为用。

    • 已标记为答案 Sago.Su 2015年9月22日 8:53
    2015年9月22日 8:53