Christopher Francisco
Christopher Francisco

Reputation: 16258

Design-time data for ItemsControl's DataTemplate

I want to use some mock data to design my DataTemplate. How do I set a mock ObservableCollection as the ItemsSource of my ItemsControl, considering I'm using d:DataContext on it to point to a mock class containing said collection?

Here is what I have so far:

<DataTemplate x:Key="MyTemplate">
    <Grid Margin="5,5,5,5">
        <CheckBox Content="{Binding Name}" />
    </Grid>
</DataTemplate>

<ItemsControl d:DataContext="{d:DesignInstance Type=mocks:MyViewModelMock, IsDesignTimeCreatable=True}" ItemsSource="{Binding MyMockList}" ItemTemplate="{StaticResource MyTemplate}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

public class MyViewModelMock {

    public ObservableCollection<MyModel> MyMockList { get; set; }

    public MyViewModelMock() {
        MyMockList .Add(new MyModel() { Name = "Mock 1" });
        MyMockList .Add(new MyModel() { Name = "Mock 2" });
    }

}

Upvotes: 0

Views: 1488

Answers (1)

Amit Raz
Amit Raz

Reputation: 5536

Point you d:DataContext at a static implementation of that type and you will have your design time data context. Here is a good example http://adamprescott.net/2012/09/12/design-time-data-binding-in-wpf/

Upvotes: 1

Related Questions