0

我一直在使用该d:DataContext属性为我的视图提供我的视图模型的设计时表示,但我现在遇到了这样一种情况,即我的视图也有 XAML 绑定到DependencyProperty我在我还想用设计时数据填充的视图控件。

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

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

4

2 回答 2

1

如果不知道依赖属性的来源是什么,就很难告诉您如何对这些依赖属性的来源执行任何特定操作。ViewModel 很简单:只需在设计时加载数据即可。从技术上讲,答案是在设计时简单地用值填充这些属性。

于 2012-09-04T19:55:18.970 回答
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>
于 2012-09-05T14:00:15.203 回答