MIX10. Build Your Own MVVM Framework. Rob Eisenberg. Версия для печати 25/03/10

Спустя только неделю я соизволил посмотреть видео с MIX'а, и хотя знающие люди и так знают, КАК НУЖНО ПИСАТЬ НА WPF/Silverligt я все же скажу несколько слов. Во-первых, Caliburn это магия, Caliburn это светлая сторона, что бы делали без Caliburn!? А во-вторых, прежде чем смотреть на сайте что это и с чем это едят, настоятельно рекомендую посмотреть сессию "Build Your Own MVVM Framework", которую вел автор caliburn'a Rob Eisenberg. Хорошо бы конечно быть в теме MVVM и Data Binding в WPF/Silverlight, но думаю, в любом случает вас не должно оставить равнодушным мега единственно правильное использование coroutines и reflection! Искренне надеюсь, что доклад заставит задуматься не только шарповых программистов.

Я серьезно! Мне кажется, Caliburn остается очень недооцененным фреймворком. Пора исправлять ситуацию!

| Комментарии [1]

Загрузка по-требованию дочерних элементов TreeViewItem в Silvierlight Версия для печати 14/10/09

Отчего-то в Silverlight не работает байндинг к свойству "IsExpanded" у элемента TreeViewItem (в WPF с этим все в порядке) в результате сделать загрузку дочерних узлов по-требованию можно только ручками подключив байндинг. Решение подсмотрел в посте Bea Stollnitz: How can I expand items in a TreeView? – Part II. Итак:

  1. Наследуем классы TreeView и TreeViewItem и ручками подключаем байндинг.
    1. public class TreeViewItemEx : TreeViewItem {
    2.   protected override DependencyObject GetContainerForItemOverride() {
    3.     TreeViewItemEx tvi = new TreeViewItemEx();
    4.     Binding expandedBinding = new Binding("IsExpanded");
    5.     expandedBinding.Mode = BindingMode.TwoWay;
    6.     tvi.SetBinding(TreeViewItemEx.IsExpandedProperty, expandedBinding);
    7.     return tvi;
    8.   }
    9. }
    10.  
    11. public class TreeViewEx : TreeView {
    12.   protected override DependencyObject GetContainerForItemOverride() {
    13.     TreeViewItemEx tvi = new TreeViewItemEx();
    14.     Binding expandedBinding = new Binding("IsExpanded");
    15.     expandedBinding.Mode = BindingMode.TwoWay;
    16.     tvi.SetBinding(TreeViewItemEx.IsExpandedProperty, expandedBinding);
    17.     return tvi;
    18.   }
    19. }
    * This source code was highlighted with Source Code Highlighter.
  2. Подправляем ItemTemplate:
    1. <Grid x:Name="LayoutRoot">
    2.   <Grid.Resources>
    3.     <c:HierarchicalDataTemplate x:Key="treeTemplate" ItemsSource="{Binding Children}">
    4.       <TextBlock Text="{Binding Title}"/>
    5.     </c:HierarchicalDataTemplate>
    6.   </Grid.Resources>
    7.   <l:TreeViewEx
    8.     BorderThickness="0"
    9.     ItemTemplate="{StaticResource treeTemplate}"
    10.     ItemsSource="{Binding}"/>
    11. </Grid>
    * This source code was highlighted with Source Code Highlighter.
  3. Прикручиваем в модели загрузку по-требованию.

Вуаля!

Get Microsoft Silverlight

Исходный код.

| Комментарии

MS Sharepoint Designer бесплано! Версия для печати 08/05/09

MS SharePoint Designer 2007

Отличная новость, которою я публикую с некоторым опозданием: Microsoft SharePoint Designer 2007 стал бесплатным. И что здесь такого? А то, что MS SharePoint это суть тот же MS Expression Web про который я писал полтора года назад. Правда MS Expression Web за это время обновился до версии 2 но все еще стоит $299.

Напомню, что MS Expression Web (читай MS SharePoint Designer) я считаю лучшим средством для верстки HTML под MS Windows. Я не хочу останавливаться на теме, что для настоящих гуру FAR - лучший редактор на свете, с подобным мнением отправляю к Вадиму Макишвили. А на счет IntelliJ IDEA и работы Java-приложений под Windows это большая тема и как-нибудь в другой раз...

| Комментарии

« Предыдущая страница

Последние статьи

Opml.xml

Rss

About

MeМеня зовут Денис Ларионов.
Работаю программистом. Мне есть что рассказать про: web-бизнес, маркетинг, программирование.

RSS

RSS Add to Google Reader or Homepage

Я - Слушаю подкаст Radio-T