Aller au contenu

DataContext

De Banane Atomic

Dans le code behind de la vue

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new MainWindowVM();
    }

Dans la vue

<Window x:Class="WpfApplication1.MainWindow"
        xmlns:local="clr-namespace:WpfApplication">
    <Window.DataContext>
        <local:MainWindowVM />  <!-- appel le ctor par défaut de MainWindowVM -->
    </Window.DataContext>

Via une StaticResource

<Window x:Class="WpfApplication1.MainWindow"
        xmlns:local="clr-namespace:WpfApplication"
        DataContext="{Binding Source={StaticResource ResourceKey=MainVM}}">
    <Window.Resources>
        <local:MainWindowVM x:Key="MainWindowVM" />
    </Window.Resources>

Design

Définit quel sera le type du DataContext afin de faciliter le développement (auto-completion).

<Window xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:local="clr-namespace:WpfItemsControl"
        d:DataContext="{d:DesignInstance local:MainWindowVM}">