在安裝了最新更新的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中我看到正在加載的元素。
我期望在同一個用戶控件中看到正在加載的數據,因爲這是我想要設計,編輯樣式或加載數據的地方。
任何幫助?謝謝。
嗨,Grace,它的作品,但只是好奇。設計師不應該在InitializeComponent之後運行代碼嗎?如果我把不工作的UserControl放在另一個UserControl中,在構造函數中輸入datacontext,我也可以看到它。 – toroveneno
@FernandoUrkijoCereceda,如果在'InitializeComponent'之前在佈局中放置了一個'TextBox',它也可以在設計器中看到。 'InitializeComponent'是做什麼的?找到[答案](http://stackoverflow.com/questions/245825/what-does-initializecomponent-do-and-how-does-it-work-in-wpf)。在初始化之前,控制器可以在設計器中看到,但在這裏'GridView'中,如果找不到這些項目,則不會顯示任何內容。如果你在後面的代碼中設置了'DataContext',它只能在構建完成後才能得到,這就是爲什麼你可以看到如果你在xaml中設置'DataContext'。 –