<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael Albaladejo &#187; WPF</title>
	<atom:link href="https://blog.developpez.com/malbaladejo/pcategory/net/wpf/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/malbaladejo</link>
	<description></description>
	<lastBuildDate>Fri, 10 Feb 2012 15:50:23 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Boite de dialogue, MVVM et TriggerAction</title>
		<link>https://blog.developpez.com/malbaladejo/p10458/net/boite_de_dialogue_mvvm_et_triggeraction</link>
		<comments>https://blog.developpez.com/malbaladejo/p10458/net/boite_de_dialogue_mvvm_et_triggeraction#comments</comments>
		<pubDate>Wed, 02 Nov 2011 12:47:47 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[L&#8217;un des buts du pattern MVVM est de permettre la mise en oeuvre de tests unitaires sur l&#8217;interface. L&#8217;utilisation d&#8217;une boite de dialogue (MessageBox, OpenFileDialog, &#8230;) n&#8217;est pas compatible avec cette approche. Le test unitaire resterai bloqué sur la boite de dialogue en attendant une action utilisateur. En utilisant les TriggerAction nous pouvons isoler la gestion des boites de dialogue et rendre le code du ViewModel testable. » Lire la suite!]]></description>
				<content:encoded><![CDATA[<p>L&rsquo;un des buts du pattern <b>MVVM</b> est de permettre la mise en oeuvre de <b>tests unitaires</b> sur l&rsquo;interface.</p>
<p>L&rsquo;utilisation d&rsquo;une boite de dialogue (MessageBox, OpenFileDialog, &#8230;) n&rsquo;est pas compatible avec cette approche.</p>
<p>Le test unitaire resterai bloqué sur la boite de dialogue en attendant une action utilisateur.</p>
<p>En utilisant les <b>TriggerAction</b> nous pouvons isoler la gestion des boites de dialogue et rendre le code du ViewModel <b>testable</b>.</p>
<p class="bMore">
<a href="http://www.michaelalbaladejo.com/post/2011/11/02/Boite-de-dialogue-MVVM-TriggerAction-Part-1.aspx">» Lire la suite!</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codes Snippets pour Visual Studio</title>
		<link>https://blog.developpez.com/malbaladejo/p9828/net/codes_snippets_pour_visual_studio</link>
		<comments>https://blog.developpez.com/malbaladejo/p9828/net/codes_snippets_pour_visual_studio#comments</comments>
		<pubDate>Tue, 22 Mar 2011 12:43:43 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Tout le monde connait les codes Snippets et le gain de productivité qu&#8217;ils apportent. Ils permettent aussi de formater son code toujours de la même façon. Dans cet article, je fais la liste des codes Snippets que j&#8217;utilise le plus souvent. Il y en a bien d&#8217;autre, et je complèterai la liste par la suite. Entrée / sortie Lire un fichier Ecrire un fichier WPF / Silverlight Propriété M-V-VM Propriété RelayCommand Dependency Property » Lire [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Tout le monde connait les codes Snippets et le gain de productivité qu&rsquo;ils apportent.<br />
Ils permettent aussi de formater son code toujours de la même façon.</p>
<p>Dans cet article, je fais la liste des codes Snippets que j&rsquo;utilise le plus souvent.<br />
Il y en a bien d&rsquo;autre, et je complèterai la liste par la suite.</p>
<h3>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#IO">Entrée / sortie</a><br />
</h3>
<h4>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#FileRead">Lire un fichier</a></h4>
<h4>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#FileWrite">Ecrire un fichier</a></h4>
<h3>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#WPF">WPF / Silverlight</a></h3>
<h4>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#propMVVM">Propriété M-V-VM</a></h4>
<h4>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#relayCommand">Propriété RelayCommand</a></h4>
<h4>
    <a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx#propDependency">Dependency Property</a></h4>
<p class="bMore">
<a href="http://www.michaelalbaladejo.com/post/2011/03/22/Codes-Snippets-pour-Visual-Studio.aspx">» Lire la suite!</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataBinding sur la propriété Source d&#8217;un WebBrowser</title>
		<link>https://blog.developpez.com/malbaladejo/p9659/net/databinding_sur_la_propriete_source_d_un</link>
		<comments>https://blog.developpez.com/malbaladejo/p9659/net/databinding_sur_la_propriete_source_d_un#comments</comments>
		<pubDate>Wed, 12 Jan 2011 07:38:57 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[En Wpf il n&#8217;est pas possible de faire du Binding sur la propriété source d&#8217;un WebBrowser. Si l&#8217;on souhaite respecter l&#8217;architecture MVVM c&#8217;est problématique. Le code suivant ne fonctionne pas : &#60;WebBrowser Source=&#160;&#187;{Binding Url}&#160;&#187; /> » Lire la suite!]]></description>
				<content:encoded><![CDATA[<p>
En Wpf il n&rsquo;est pas possible de faire du Binding sur la propriété source d&rsquo;un WebBrowser.<br />
Si l&rsquo;on souhaite respecter l&rsquo;architecture MVVM c&rsquo;est problématique. </p>
<p>Le code suivant ne fonctionne pas : </p>
<p>&lt;WebBrowser Source=&nbsp;&raquo;{Binding Url}&nbsp;&raquo; />
</p>
<p class="bMore">
<a href="http://www.michaelalbaladejo.com/post/2010/12/20/DataBinding-sur-la-propriete-Source-dun-WebBrowser.aspx">» Lire la suite!</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF &#8211; Afficher une image en taille réelle</title>
		<link>https://blog.developpez.com/malbaladejo/p9586/net/wpf_afficher_une_image_en_taille_reelle</link>
		<comments>https://blog.developpez.com/malbaladejo/p9586/net/wpf_afficher_une_image_en_taille_reelle#comments</comments>
		<pubDate>Thu, 16 Dec 2010 08:14:54 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[En Wpf (et en silverlight) lorsque l&#8217;on affiche une image sans préciser de dimension on s&#8217;attend à voir l&#8217;image s&#8217;afficher dans sa taille réelle. Si l&#8217;image fait 800&#215;600 pixels, l&#8217;image en WPF devrait mesurer 800&#215;600 pixels. Cela est vrai uniquement si l&#8217;image a une résolution de 96 dpi en largeur et en hauteur. Lorsque l&#8217;on ne précise pas de dimension pour une image, WPF utilise les formules suivantes pour calculer les dimensions de l&#8217;image : [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>En Wpf (et en silverlight) lorsque l&rsquo;on affiche une image sans préciser de dimension on s&rsquo;attend à voir l&rsquo;image s&rsquo;afficher dans sa taille réelle.<br />
Si l&rsquo;image fait 800&#215;600 pixels, l&rsquo;image en WPF devrait mesurer 800&#215;600 pixels.<br />
Cela est vrai uniquement si l&rsquo;image a une résolution de 96 dpi en largeur et en hauteur. </p>
<p>Lorsque l&rsquo;on ne précise pas de dimension pour une image, WPF utilise les formules suivantes pour calculer les dimensions de l&rsquo;image :<br />
(Largeur afficher par wpf) = (largeur réelle de l&rsquo;image) * 96 / DpiX<br />
(Hauteur afficher par wpf) = (Hauteur réelle de l&rsquo;image) * 96 / DpiY </p>
<p><a href="http://www.michaelalbaladejo.com/post/2010/12/10/WPF-Afficher-une-image-en-taille-reelle.aspx">» Lire la suite!</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF &#8211; TabControl, MVVM et gestion des instances des vues.</title>
		<link>https://blog.developpez.com/malbaladejo/p9422/net/wpf/tabcontrol_mvvm_et_gestion_des_instances</link>
		<comments>https://blog.developpez.com/malbaladejo/p9422/net/wpf/tabcontrol_mvvm_et_gestion_des_instances#comments</comments>
		<pubDate>Wed, 27 Oct 2010 05:55:03 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Si vous utilisez le TabControl en WPF vous avez du remarquer qu&#8217;il perd les éléments sélectionnés à chaque fois que l&#8217;on change d&#8217;onglet. A chaque fois que l&#8217;on change d&#8217;onlget, si le nouveau ViewModel est du même type que l&#8217;ancien, le TabControl conserve l&#8217;instance de la vue courante, alors que si le ViewModel est d&#8217;un type différent il crée une nouvelle instance de la vue. Avec cette solution, on n&#8217;a qu&#8217;une seule instance de vue [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Si vous utilisez le TabControl en WPF vous avez du remarquer qu&rsquo;il perd les éléments sélectionnés à chaque fois que l&rsquo;on change d&rsquo;onglet. </p>
<p>A chaque fois que l&rsquo;on change d&rsquo;onlget, si le nouveau ViewModel est du même type que l&rsquo;ancien, le TabControl conserve l&rsquo;instance de la vue courante, alors que si le ViewModel est d&rsquo;un type différent il crée une nouvelle instance de la vue. </p>
<p>Avec cette solution, on n&rsquo;a qu&rsquo;une seule instance de vue en mémoire mais à chaque changement d&rsquo;onglet, on perd du temps dans la construction d&rsquo;une nouvelle et on perd le précédent VisualState de la vue. </p>
<p>L&rsquo;article Keeping the &laquo;&nbsp;WPF Tab Control from destroying its children&nbsp;&raquo; propose un code pour régler le problème.<br />
Dans ce code, quand un onglet est affiché pour la première fois, la vue est ajoutée dans un Grid. Lors que l&rsquo;onglet est affiché une nouvelle fois, il masque l&rsquo;onglet courant affiche le nouveau.<br />
Avec cette solution plusieurs vues sont chargées en mémoire mais le changement d&rsquo;onglet est bien plus rapide et les vues conservent leur état. </p>
<p>Le code source est ici :</p>
<p>http://www.michaelalbaladejo.com/post/2010/10/26/WPF-TabControl-MVVM-et-gestion-des-instances-des-vues.aspx</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF &#8211; ContextMenu et Binding</title>
		<link>https://blog.developpez.com/malbaladejo/p9403/net/wpf_contextmenu_et_binding</link>
		<comments>https://blog.developpez.com/malbaladejo/p9403/net/wpf_contextmenu_et_binding#comments</comments>
		<pubDate>Mon, 18 Oct 2010 07:53:31 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Pour un projet je devais afficher un ContextMenu sur tous les éléments d&#8217;un ListBox et pour chaque éléments les entrées dans le menu pouvaient être différentes. J&#8217;ai voulu utiliser le pattern MVVM pour construire ces menus mais après des recherches sur internet il semble que le controle MenuItem ne gère pas bien le binding. Vous trouverez toutes les explications et les exemples ici : http://www.michaelalbaladejo.com/post/2010/10/14/WPF-ContextMenu-et-Binding.aspx]]></description>
				<content:encoded><![CDATA[<p>Pour un projet je devais afficher un ContextMenu sur tous les éléments d&rsquo;un ListBox et pour chaque éléments les entrées dans le menu pouvaient être différentes.<br />
J&rsquo;ai voulu utiliser le pattern MVVM pour construire ces menus mais après des recherches sur internet il semble que le controle MenuItem ne gère pas bien le binding.</p>
<p>Vous trouverez toutes les explications et les exemples ici :</p>
<p>http://www.michaelalbaladejo.com/post/2010/10/14/WPF-ContextMenu-et-Binding.aspx</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validation de données en WPF</title>
		<link>https://blog.developpez.com/malbaladejo/p8944/net/validation_de_donnees_en_wpf</link>
		<comments>https://blog.developpez.com/malbaladejo/p8944/net/validation_de_donnees_en_wpf#comments</comments>
		<pubDate>Fri, 28 May 2010 07:48:20 +0000</pubDate>
		<dc:creator><![CDATA[malbaladejo]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;ai écrit une série d&#8217;articles sur la validation de données en WPF. Dans ces articles j&#8217;explique comment créer des règles de validation personnalisée, et je donne des exemples de règles de validation standard tel que AuthorizedValuesValidationRule, RegularExpressionValidationRule, RequiredFieldValidationRule et RangeValidationRule. Je montre aussi comment activer un bouton uniquement lorsque toutes les règles de validation sont satisfaites.]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;ai écrit une série d&rsquo;articles sur la validation de données en WPF.</p>
<p>Dans ces articles j&rsquo;explique <a href="http://www.michaelalbaladejo.com/post/2010/05/26/WPF-Validation-de-donnee-personnalisee.aspx">comment créer des règles de validation personnalisée</a>, et je donne des <a href="http://www.michaelalbaladejo.com/post/2010/05/28/WCF-Librairie-de-ValidationRule.aspx">exemples de règles de validation standard</a> tel que AuthorizedValuesValidationRule, RegularExpressionValidationRule, RequiredFieldValidationRule et RangeValidationRule.</p>
<p>Je montre aussi comment <a href="http://www.michaelalbaladejo.com/post/2010/05/26/WPF-Validation-de-lensemble-des-champs-dun-formulaire.aspx">activer un bouton uniquement lorsque toutes les règles de validation sont satisfaites</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
