如何将设计模式虚拟数据添加到WPF控件中

时间:2014-01-10 07:25:38

标签: wpf data-binding

向usercontrol资源添加了实体Dummy,但Visual Studio抱怨它无法找到资源'Dummy'。是否可以通过这种方式添加设计数据?我做错了什么?

<UserControl x:Class="MovieScraper.Media"
        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"
        xmlns:entity="clr-namespace:Processor.Entity;assembly=Processor"
        mc:Ignorable="d"
        d:DataContext="{StaticResource ResourceKey=Dummy}"
        d:DesignHeight="300" d:DesignWidth="300" Background="White">
    <UserControl.Resources>
        <entity:Media x:Key="Dummy" Title="Akira"></entity:Media>
    </UserControl.Resources>
    <Grid>
            <TextBlock Text="{Binding Title}"></TextBlock>
    </Grid>
</UserControl>

2 个答案:

答案 0 :(得分:3)

我会创建一个MockDataContext模型。这非常好用。这是我的代码片段:

<UserControl x:Class="Modules.Core.Views.HeaderView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:viewModels="clr-namespace:Modules.Core.ViewModels"
             mc:Ignorable="d"
             d:DesignHeight="100" d:DesignWidth="1024">
    <Grid d:DataContext="{d:DesignInstance Type=viewModels:MockHeaderViewModel, IsDesignTimeCreatable=True}">

    </Grid>
</UserControl>

最大的好处是你可以实际运行一些代码。例如,我用它在设计时更新标题中的时间并改变一些字段。您可以立即查看绑定工作和布局是否为组件提供了足够的空间。

答案 1 :(得分:1)

您正在尝试将d:DataContext绑定到资源Dummy,但您缺少关键字绑定。请将此行更改为

d:DataContext="{Binding Source={StaticResource Dummy}}