WPF:XAML中的DataContext
代码:
<Window
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=viewModels:MainWindowViewModel, IsDesignTimeCreatable=True}">
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 是 XAML 设计时(design-time)命名空间,用于支持设计器(如 Visual Studio、Blend)中的设计时功能。
- 只在设计器中生效,不影响运行时。
- 用于设置设计时数据(如 d:DataContext)、可视化辅助属性等,帮助开发者在设计器中预览界面效果。
- 不会被编译进最终的应用程序。
设计时属性:可以为控件设置仅在设计器中生效的属性,而不会影响运行时。例如:<TextBox d:Text="设计时显示的文本" />在设计器中会显示 设计时显示的文本,但运行时不会生效。
设计时数据绑定:使用 d:DesignInstance 或 d:DesignData 提供设计时数据源,方便在设计器中预览绑定效果:
d:DataContext="{d:DesignInstance Type=viewModels:MainWindowViewModel, IsDesignTimeCreatable=True}"
- IsDesignTimeCreatable:指定是否允许设计器通过无参构造函数自动创建你指定的
ViewModel实例。- 如果设置为
True,设计器会尝试用无参构造函数实例化你的ViewModel,这样你可以在设计器中看到绑定的数据和界面效果。 - 如果设置为
False,设计器不会自动创建实例,通常用于ViewModel构造函数有依赖注入或复杂逻辑时,避免设计器报错。
- 如果设置为
隐藏设计时元素:使用 mc:Ignorable="d" 忽略 d 命名空间的内容,确保这些内容不会被编译到最终的应用程序中。
浙公网安备 33010602011771号