为什么用户控件不加载设计时数据

时间:2016-09-27 16:24:53

标签: xaml c#-4.0 windows-10-universal uwp-xaml

在安装了最新更新的Visual Studio 2015中,为Windows 10 UAP执行项目。我创建了一个这样的用户控件:

<UserControl
x:Class="App3.CustomControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App3"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">

<Grid>
    <GridView x:Name="gridView" ItemsSource="{Binding Elements}">
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid Width="50" Height="50" Background="Bisque">
                    <TextBlock Text="{Binding}"/>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>

</Grid>

代码背后:

namespace App3{
public sealed partial class CustomControl : UserControl
{
    public CustomControl()
    {
        this.InitializeComponent();
        this.DataContext = new MainViewModel();
    }
}

}

MainViewModel

public class MainViewModel
{
    public List<int> Elements { get; set; }

    public MainViewModel()
    {
        Elements = Enumerable.Range(0, 100).ToList();
    }
}

我将该用户控件添加到MainPage,然后执行应用程序。我在屏幕上看到100个元素。大!但由于我无法执行和编译数百万次,我希望设计时数据能够帮助我。enter image description here

编辑UserControl时,我什么都没看到!但是当在MainPage中我看到正在加载的元素。

我希望在同一个UserControl中看到正在加载的数据,因为那是我想要设计,编辑样式或加载数据的地方。

有任何帮助吗?感谢。

2 个答案:

答案 0 :(得分:1)

  

我希望在同一个UserControl中看到正在加载的数据,因为那是我想要设计,编辑样式或加载数据的地方。

要执行此操作,您应在xaml中设置DataContext

<UserControl.DataContext>
    <local:MainViewModel x:Name="viewmodel" />
</UserControl.DataContext>

并在CustomControl后面的代码中删除DataContext

public CustomControl()
{
    this.InitializeComponent();
    //this.DataContext = new MainViewModel();
}

你可以看到它如下:

enter image description here

答案 1 :(得分:1)

另一种方法是使用:

来使用d:datacontext
  d:DataContext="{d:DesignInstance {x:Type local:MyViewModelSample},IsDesignTimeCreatable=True}">

这将引用仅限设计时的视图模型。