编译绑定
在XAML中定义的绑定使用反射来查找和访问您的ViewModel中请求的属性。在Avalonia中,您还可以使用编译绑定,它有一些好处:
- 如果您使用编译绑定,并且找不到要绑定的属性,您将获得一个编译时错误。因此,您将获得更好的调试体验。
- 已知反射较慢(请参阅此文章)。因此,使用编译绑定可以提高应用程序的性能。
启用和禁用编译绑定
信息
根据创建 Avalonia 项目时使用的模板,默认情况下可能启用也可能不启用编译绑定。您可以在项目文件中查看。
全局启用和禁用
如果您希望应用程序默认情况下全局使用编译绑定,可以将以下内容添加到您的项目文件中:
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
您仍然需要为您想要绑定的对象提供x:DataType,但是您不需要为每个UserControl或Window设置x:CompileBindings="[True|False]"。
在每个UserControl或Window中启用和禁用
要启用编译绑定,您需要首先定义要绑定的对象的DataType。在DataTemplates中,有一个DataType属性,对于所有其他元素,您可以通过x:DataType来设置它。最可能在根节点中设置x:DataType,例如在Window