wpf xaml datatemplate designview

wpf - Diseñe datos de tiempo para datatemplate en xaml



designview (1)

Esta puede ser una pregunta estúpida, pero ¿es posible definir algunos datos de muestra como DataContext para ver mi DataTemplate en DesignView?

Por el momento, siempre tengo que ejecutar mi aplicación para ver si mis cambios están funcionando.

Por ejemplo, con el siguiente código, DesignView solo muestra un cuadro de lista vacío:

<ListBox x:Name="standardLayoutListBox" ItemsSource="{Binding myListboxItems}"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Column="0" Content="{Binding text1}" /> <Label Grid.Column="1" Content="{Binding text2}" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>


public class MyMockClass { public MyMockClass() { MyListBoxItems.Add(new MyDataClass() { text1 = "test text 1", text2 = "test text 2" }); MyListBoxItems.Add(new MyDataClass() { text1 = "test text 3", text2 = "test text 4" }); } public ObservableCollection<MyDataClass> MyListBoxItems { get; set; } } public class MyDataClass { public string text1 { get; set; } public string text2 { get; set; } }

En tu XAML

Agregue la declaración del espacio de nombres

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

Agregue el contexto de datos falso a los recursos de ventana / control

<UserControl.Resources> <local:MyMockClass x:Key="DesignViewModel"/> </UserControl.Resources>

Luego, modifique su ListBox para hacer referencia al objeto de tiempo de diseño

<ListBox x:Name="standardLayoutListBox" d:DataContext="{Binding Source={StaticResource DesignViewModel}}" ItemsSource="{Binding MyListBoxItems}"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Column="0" Content="{Binding text1}" /> <Label Grid.Column="1" Content="{Binding text2}" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>