设计ViewModel和DependencyProperties的时间数据?

时间:2012-09-04 19:38:39

标签: c# .net wpf xaml expression-blend

我一直在使用d:DataContext属性为我的视图提供我的视图模型的设计时表示,但我现在遇到的情况是我的视图也有一些XAML绑定到一些已在视图控件中声明的DependencyProperty个成员,我还想填充设计时数据。

如何为我的ViewModel(通过示例数据)和控件的依赖属性提供设计时数据?

显然,我可以将所有属性都滚动到我的ViewModel中以避免出现问题,但如果可能,我宁愿不这样做。

2 个答案:

答案 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>