我一直在使用该d:DataContext
属性为我的视图提供我的视图模型的设计时表示,但我现在遇到了这样一种情况,即我的视图也有 XAML 绑定到DependencyProperty
我在我还想用设计时数据填充的视图控件。
如何为我的 ViewModel(通过示例数据)和控件的依赖属性提供设计时数据?
显然,我可以将所有属性滚动到我的 ViewModel 中以避免问题,但如果可能的话,我宁愿不这样做。
我一直在使用该d:DataContext
属性为我的视图提供我的视图模型的设计时表示,但我现在遇到了这样一种情况,即我的视图也有 XAML 绑定到DependencyProperty
我在我还想用设计时数据填充的视图控件。
如何为我的 ViewModel(通过示例数据)和控件的依赖属性提供设计时数据?
显然,我可以将所有属性滚动到我的 ViewModel 中以避免问题,但如果可能的话,我宁愿不这样做。
如果不知道依赖属性的来源是什么,就很难告诉您如何对这些依赖属性的来源执行任何特定操作。ViewModel 很简单:只需在设计时加载数据即可。从技术上讲,答案是在设计时简单地用值填充这些属性。
对于我的情况,一个可行的解决方案是用来d:DataContext
提供代表我的视图模型Binding FallbackValue
的设计时数据,并使用该属性为我的 View UserControl 的依赖属性提供设计时数据。
如果没有DataContext
提供,这些备用值将泄漏到运行时,但对于 MVVM 视图,这应该不是问题。
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Name="myView"
x:Class="Example.MyView"
mc:Ignorable="d"
d:DataContext="{d:DesignData /SampleData/MyViewModelSampleData.xaml}">
<Label Content="{Binding ElementName=myView, Path=ADependencyPropertyOnMyView}"/>
</UserControl>