在 XAML 中写绑定是 WPF 学习的必修课,进阶一点的,是用 C# 代码来写绑定。然而一旦绑定的属性是附加属性,好多小伙伴就会开始遇到坑了。
本文将介绍如何在 XAML 和 C# 代码中绑定附加属性。
@TOC
背景代码
开始遇到这个问题的背景是我定义了一个附加属性,然后试图通过绑定的方式完成一些业务。
用附加属性来完成的很大一个好处在于不需要改动原有的代码破坏原来的类。例如我只需要在任何一个类中定义 IsDraggable
附加属性,就可以让我其他地方的 Grid
Button
等支持拖拽。
public class DraggableElement : FrameworkElement
{
static TabViewItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(DraggableElement),
new FrameworkPropertyMetadata(typeof(DraggableElement)));