Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WPF 4 / Silverlight] Exposer des données en design time

Il y a quelques temps, je vosu avais donné une solution pour disposer de données en design time lorsque vous développez votre application WPF. L’objectif de cette technique était de faciliter la collaboration entre le développeur et le designer car ce dernier dispose désormais de données (fictives) pour convevoir l’interface de l’application.

Dans la Beta 2 de Visual Studio 2010, Microsoft a rajouté de nouvelles propriétés et une nouvelle MarkupExtension permettant d’exposer des données en design time.

Pour cela, il est nécessaire d’utiliser la propriété d:DataContext et la MarkupExtension nommée d:DesignInstance. Pour les utiliser, il faut commencer par rajouter les namespaces suivant à votre fichier XAML:

   1: xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   2: xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

Puis, rajouter cette ligne qui permet d’indiquer que le préfixe “d” ne doit pas être compilé/interprétré à l’exécution:

   1: mc:Ignorable="d"

A présent, on peut indiquer que l’on souhaite disposer de données en design-time:

   1: xmlns:DesignTime="clr-namespace:TestDesignTime.ViewModels.DesignTime"
   2: d:DataContext="{d:DesignInstance DesignTime:Demo, IsDesignTimeCreatable=True}">

Ainsi, j’indique qu’en mode design, le DataContext de ma fenêtre est affecté par une instance du type Demo qui est dans le répertoire ViewModels.DesignTime. Par contre, en mode runtime, je lui passe une instance du type Demo, qui est dans le répertoire ViewModels:

   1: private void Grid_Loaded(object sender, RoutedEventArgs e)
   2: {
   3:     this.DataContext = new Demo();
   4: }

Lorsque l’on regarde l’application dans Visual Studio, on voit des données:

image

Qui sont bien différentes de celles que l’on a en mode runtime:

image

On peut même avoir les 2 en même temps Smile

image

Avec cette nouvelle fonctionnalité, Microsoft tend à améliorer encore plus la collaboration entre les développeurs et les désigners, ainsi qu’à augmentez leur productivité !

 

Deux liens pour en savoir plus:

 

A+

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mercredi 9 décembre 2009 10:05 par Thomas LEBRUN
Classé sous : , ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01