我正在创建一个 WPF 自定义控件作为自动学习练习。我的控件在模板中有一个 ListView。我希望我的控件用户能够在他自己的 Xaml 中定义所需的列,但是我没有得到关于如何将列传递到内部 ListView 的策略,因为与 FindAncestor 的绑定(bind)提示“Columns”不是 DependencyProperty。 问题是:
- 当模板不是 DP 时,如何实现将属性从 xaml 绑定(bind)到模板
- 修正我的设计:我觉得有问题:如果有人完全改变我的模板,我应该如何让他使用 Column 集合?
最佳答案
为什么不直接继承ListView呢?这样您就拥有了 ListView 所需的所有属性,还可以将您自己的属性添加到类中。
然后您可以将自定义样式应用于您的控件,使其看起来像您想要的那样。 (Here 你有一个基本的 ListView 样式,你可以使用它并根据你的需要进行扩展)
关于WPF 绑定(bind)到控件模板上的非依赖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191289/