{"id":35,"date":"2010-08-12T19:00:37","date_gmt":"2010-08-12T18:00:37","guid":{"rendered":"http:\/\/ree7.fr\/blog\/?p=35"},"modified":"2022-08-08T06:47:42","modified_gmt":"2022-08-08T05:47:42","slug":"slwp7-snippet-nprop","status":"publish","type":"post","link":"http:\/\/www.ree7.fr\/blog\/2010\/08\/slwp7-snippet-nprop\/","title":{"rendered":"[SL\/WP7] Snippet nprop"},"content":{"rendered":"<p><a href=\"http:\/\/ree7.fr\/blog\/wp-content\/uploads\/2010\/08\/nprop.png\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-36\" title=\"Snippet nprop\" src=\"http:\/\/ree7.fr\/blog\/wp-content\/uploads\/2010\/08\/nprop.png\" alt=\"\" width=\"544\" height=\"239\" srcset=\"http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2010\/08\/nprop.png 544w, http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2010\/08\/nprop-300x131.png 300w\" sizes=\"(max-width: 544px) 100vw, 544px\" \/><\/a><br \/>\nAvouez-le, vous en avez plein vos DataContext, des propri\u00e9t\u00e9s b\u00eates et m\u00e9chantes qui font appel \u00e0 une fonction NotifyPropertyChanged. [ Pour ceux du fond pr\u00e8s du radiateur, dans une UI Silverlight, l&rsquo;objet contexte de la page, s&rsquo;il impl\u00e9mente INotifyPropertyChanged, poss\u00e8de un event PropertyChanged qui permet de signifier \u00e0 Silverlight que de la valeur d&rsquo;une propri\u00e9t\u00e9 \u00e0 chang\u00e9 et qu&rsquo;il est temps de mettre \u00e0 jour les \u00e9l\u00e9ments de l&rsquo;UI attach\u00e9s \u00e0 cette propri\u00e9t\u00e9. ]<\/p>\n<p>Nativement, dans Visual Studio nous avons \u00e0 notre disposition <strong>prop<\/strong> et <strong>propdp<\/strong>, bien utiles dans la vie de tous les jours du d\u00e9veloppeur Silverlight pour cr\u00e9er propri\u00e9t\u00e9s et <em>DependencyProperties <\/em>sans trop avoir \u00e0 taper du code purement r\u00e9p\u00e9titif. Par contre rien pour les propri\u00e9t\u00e9s d\u00e9clenchant l&rsquo;\u00e9v\u00e8nement <em>PropertyChanged <\/em>&#8211; sans doute car l&rsquo;impl\u00e9mentation concr\u00e8te d&rsquo;<em>INotifyPropertyChange<\/em>d est laiss\u00e9e au d\u00e9veloppeur&#8230; bien que l&rsquo;on fasse quasiement tous pareil.<\/p>\n<p>Pour palier \u00e0 ce manque je vous propose <strong>nprop, <\/strong>un snippet venant s&rsquo;ajouter \u00e0 votre IDE et qui vous permettra du temps dans vos d\u00e9veloppements \ud83d\ude42<\/p>\n<p>Elle s&rsquo;utilise comme n&rsquo;importe quel autre snippet, tapez juste nprop puis TAB et le code apparaitra en vous invitant \u00e0 remplir les trous.<\/p>\n<ul>\n<li><a href=\"http:\/\/ree7.fr\/files\/nprop\/1_0_0\/nprop.vsi\">Fichier d&rsquo;installation automatique .vsi<\/a><\/li>\n<li><a href=\"http:\/\/ree7.fr\/files\/nprop\/1_0_0\/nprop.snippet\">Fichier snippet nu<\/a> \u00e0 placer dans votre dossier <em>%Documents%\\Visual Studio 20xx\\Code Snippets\\Visual C#\\My Code Snippets<\/em> au cas o\u00f9 le fichier pr\u00e9c\u00e9dent poserait probl\u00e8me<\/li>\n<\/ul>\n<div><span class=\"Apple-style-span\" style=\"line-height: 19px;\"><strong>UPDATE :<\/strong> Toujours pas fan du snippet fourni avec MVVM Light, j&rsquo;ai un petit peu retouch\u00e9 nprop depuis le temps, dont voici la <strong><a href=\"http:\/\/ree7.fr\/files\/nprop\/1_0_1\/nprop.snippet\">derni\u00e8re version<\/a><\/strong><\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Avouez-le, vous en avez plein vos DataContext, des propri\u00e9t\u00e9s b\u00eates et m\u00e9chantes qui font appel \u00e0 une fonction NotifyPropertyChanged. [ Pour ceux du fond pr\u00e8s du radiateur, dans une UI Silverlight, l&rsquo;objet contexte de la page, s&rsquo;il impl\u00e9mente INotifyPropertyChanged, poss\u00e8de un event PropertyChanged qui permet de signifier \u00e0 Silverlight que de la valeur d&rsquo;une propri\u00e9t\u00e9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":36,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[7],"tags":[52,48,26,21,24,4,20,25],"jetpack_publicize_connections":[],"aioseo_notices":[],"jetpack_featured_media_url":"http:\/\/www.ree7.fr\/blog\/wp-content\/uploads\/2010\/08\/nprop.png","jetpack_shortlink":"https:\/\/wp.me\/p19lzH-z","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts\/35"}],"collection":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":1,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":598,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/posts\/35\/revisions\/598"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/media\/36"}],"wp:attachment":[{"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ree7.fr\/blog\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}