我读了这篇文章和这篇关于 depency 属性的文章,我很困惑,XAML 依赖项属性中的所有属性都是吗? 那么我们在 C# 中定义的普通属性呢?我的意思是这样的:Public int num {get; set;}
.
因为 C# 中的普通属性具有一些功能,它们提到它们是依赖项属性的选项,例如我可以将它们的值绑定到文本框值。
如果你能举一个简单的例子,我将不胜感激。
我觉得其他帖子很好地回答了依赖属性是什么,所以我将回答您的问题,展示如何制作依赖属性,希望这会有所帮助。
所有属性都在 XAML 依赖项属性中吗?
否,必须这样指定依赖项属性。见下文...
public class MyDataGridControl : DataGrid
{
public string SomeName
{
get { return (string)GetValue(SomeNameProperty); }
set { SetValue(SomeNameProperty, value); }
}
public static readonly DependencyProperty SomeNameProperty =
DependencyProperty.Register(
nameof(SomeName), typeof(string), typeof(MyDataGridControl),
new PropertyMetadata(null));
}
在上面的示例中,我创建了一个从 DataGrid 继承的类来制作我自己的 DataGrid 控件。我已经创建了"正常属性"SomeName。然后,我将 SomeName 注册为依赖项属性。请注意,虽然 SomeName 是一个"普通属性",但 getter 和 setter 引用的是 SomeNameProperty Dependency 属性。