我一直在使用d:DataContext
属性为我的视图提供我的视图模型的设计时表示,但我现在遇到的情况是我的视图也有一些XAML绑定到一些已在视图控件中声明的DependencyProperty
个成员,我还想填充设计时数据。
如何为我的ViewModel(通过示例数据)和控件的依赖属性提供设计时数据?
显然,我可以将所有属性都滚动到我的ViewModel中以避免出现问题,但如果可能,我宁愿不这样做。
答案 0 :(得分:1)
如果不知道依赖项属性的来源是什么,很难告诉您如何使用这些依赖项属性的来源执行任何特定操作。 ViewModel很简单:只需在设计时加载数据即可。从技术上讲,答案是在设计时简单地用值填充这些属性。
答案 1 :(得分:0)
我的案例的可行解决方案是使用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>