在安装了最新更新的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个元素。大!但由于我无法执行和编译数百万次,我希望设计时数据能够帮助我。
编辑UserControl时,我什么都没看到!但是当在MainPage中我看到正在加载的元素。
我希望在同一个UserControl中看到正在加载的数据,因为那是我想要设计,编辑样式或加载数据的地方。
有任何帮助吗?感谢。
答案 0 :(得分:1)
我希望在同一个UserControl中看到正在加载的数据,因为那是我想要设计,编辑样式或加载数据的地方。
要执行此操作,您应在xaml中设置DataContext
:
<UserControl.DataContext>
<local:MainViewModel x:Name="viewmodel" />
</UserControl.DataContext>
并在CustomControl
后面的代码中删除DataContext
:
public CustomControl()
{
this.InitializeComponent();
//this.DataContext = new MainViewModel();
}
你可以看到它如下:
答案 1 :(得分:1)
另一种方法是使用:
来使用d:datacontext d:DataContext="{d:DesignInstance {x:Type local:MyViewModelSample},IsDesignTimeCreatable=True}">
这将引用仅限设计时的视图模型。