<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Desktop Applications</title><link>https://www.dotnetzone.gr:443/cs/forums/80/ShowForum.aspx</link><description>Θέματα για όσους φτιάχνουν τα πρώτα τους Desktop Applications σε .NET Framework</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: WPF MVVM - View Model Properties called more than once</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63133.aspx</link><pubDate>Wed, 09 Feb 2011 17:52:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63133</guid><dc:creator>StrouMfios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63133.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63133</wfw:commentRss><description>Βρήκα το πρόβλημα που είχε και ενημερωνόταν το isValid συνέχεια.&lt;div&gt;Έκανα τις αλλαγές που δείχνει ο κώδικας παρακάτω.&lt;/div&gt;&lt;div&gt;Μέσα στο σχόλια είναι το λάθος.&lt;/div&gt;&lt;div&gt;Είναι σαν να είχε δύο instances του DataContext. Το ένα instance ενημερωνόταν όσον αφορά το isValid ενώ το δεύτερο δεν ενημερωνόταν&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;@&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;"&gt;&lt;strong&gt;KelMan &lt;/strong&gt;ευχαριστώ πολύ για την απάντησή σου.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;"&gt;Το ErrorChangedHandler τρέχει χωρίς πρόβλημα. Το πρόβλημα ήταν μόνο στο property του isValid&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; MainWindow() {
            InitializeComponent();
            InitializeValidaton();
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; InitializeValidaton() {
            viewModel &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; Lazy&amp;lt;MainWindowViewModel&amp;gt;(() =&amp;gt; (MainWindowViewModel)&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.DataContext);
            Validation.AddErrorHandler(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;, ErrorChangedHandler);
        }

&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//       void InitializeValidaton() {&lt;/span&gt;
&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//            viewModel = new Lazy&amp;lt;MainWindowViewModel&amp;gt;();&lt;/span&gt;
&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//            Validation.AddErrorHandler(this, ErrorChangedHandler);&lt;/span&gt;
&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//       }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;img&gt;&lt;/div&gt;</description></item><item><title>Απ: WPF MVVM - View Model Properties called more than once</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63124.aspx</link><pubDate>Wed, 09 Feb 2011 04:08:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63124</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63124.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63124</wfw:commentRss><description>&lt;P&gt;Αν βλέπω καλά: το IsValid καλείται από το CanSaveItem που είναι το CanExecute delegate για το command SaveItem. &lt;/P&gt;
&lt;P&gt;Οπότε βλέπω πολύ λογικό o getter του IsValid να καλείται συνεχώς αφού στο WPF τα commands γίνονται enabled/disabled αυτόματα μέσω του CommandManager. O ClassManager παρακολουθεί τις αλλαγές στο UI και αυτομάτως καλεί το CanExecute delegate για όσα commands έχουν. &lt;/P&gt;
&lt;P&gt;Τώρα, (εφόσον πάλι αν βλέπω καλά) η μοναδική περίπτωση για να πάρει τιμή explicitly το IsValid είναι μέσα από το&amp;nbsp;viewModel.Value.IsValid &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; !errors.Any(); προφανώς συνεχώς σου φέρνει τη default τιμή γιατί δεν έχει τρέξει ο ErrorChangedHandler.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>WPF MVVM - View Model Properties called more than once</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63081.aspx</link><pubDate>Tue, 08 Feb 2011 03:18:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63081</guid><dc:creator>StrouMfios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63081.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63081</wfw:commentRss><description>Καλησπέρα σε όλους,&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;προσπαθώ να φτιάξω μια μικρή εφαρμογή σε wpf με το Pattern mvvm.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Στο data layer για βάση δεδομένων χρησιμοποιώ .sdf file και Entity Framework.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;H εφαρμογή έχει 3 views και ενα ViewModel&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Στο dataContext του mainWindow κάνω bind το ViewModel και τα άλλα δυο userControls παίζουν με το ίδιο ViewModel.&lt;/div&gt;&lt;div&gt;Σε ένα UserControl έχω ένα property&amp;nbsp;με όνομα isValid&amp;nbsp;το οποίο &amp;nbsp;το ενημερώνω &amp;nbsp;απο το mainWindow.xaml.cs.&lt;/div&gt;&lt;div&gt;Το πρόβλημα είναι οτι ενώ το property ενημερώνετε σωστά, για κάποιο λόγο γίνεται συνέχεια initialize με αποτέλεσμα να φέρνει πάντα την default τιμή (false δηλαδή).&lt;/div&gt;&lt;div&gt;Αυτό συμβαίνει στο AddItemsView.xaml&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;PLEASE!!!!!!!!! HELP!!!!!!&lt;/div&gt;&lt;div&gt;Ευχαριστώ εκ των προτέρων για την οποιαδήποτε βοήθεια&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Παρακάτω είναι ο κώδικας&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;MainWindow.xaml&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Window&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;x:Class&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="ToDoListTest.Views.MainWindow"&lt;/span&gt;
        &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;xmlns&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;
        &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;
        &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;xmlns:local&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="clr-namespace:ToDoListTest.Views"&lt;/span&gt; 
        &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;xmlns:ViewModels&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="clr-namespace:ToDoListTest.ViewModels"&lt;/span&gt;     
        &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;xmlns:tb&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="clr-namespace:Hardcodet.Wpf.TaskbarNotification;assembly=Hardcodet.Wpf.TaskbarNotification"&lt;/span&gt;
        &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Title&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="MainWindow"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;MinHeight&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="380"&lt;/span&gt;  &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Width&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="620"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="300"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Background&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ResizeMode&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="CanMinimize"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;

    &amp;lt;Window.DataContext&amp;gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ViewModels:MainWindowViewModel&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
    &amp;lt;/Window.DataContext&amp;gt;

    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DockPanel&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;tb:TaskbarIcon&lt;/span&gt;
      &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;x:Name&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="MyNotifyIcon"&lt;/span&gt;
      &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IconSource&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="/Images/Icons/Error.ico"&lt;/span&gt;
      &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ToolTipText&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="ToDoList"&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
        
        &amp;lt;StackPanel DockPanel.Dock="Top"&amp;gt;
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DockPanel&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
                &amp;lt;local:ViewItemsList DockPanel.Dock="Left"&amp;gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;local:ViewItemsList&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
                &amp;lt;local:AddItemsView DockPanel.Dock="Right" BorderBrush="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/&amp;gt;
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DockPanel&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Grid&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Background&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="#FFD8D8D8"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
            &amp;lt;local:StatusBar DockPanel.Dock="Bottom"&amp;gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;local:StatusBar&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Grid&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DockPanel&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;

&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Window&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;&lt;u&gt;mainWIndow.xaml.cs&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Controls.Primitives;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Threading;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; Domain;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; Samples;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; ToDoListTest.ViewModels;

&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;namespace&lt;/span&gt; ToDoListTest.Views {
    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/// Interaction logic for MainWindow.xaml&lt;/span&gt;
    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; partial &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; MainWindow : Window {

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;readonly&lt;/span&gt; HashSet&amp;lt;ValidationError&amp;gt; errors &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; HashSet&amp;lt;ValidationError&amp;gt;();
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; Lazy&amp;lt;MainWindowViewModel&amp;gt; viewModel;

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; MainWindow() {
            InitializeComponent();
            InitializeValidaton();
            SetInterval();
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; InitializeValidaton() {
            viewModel &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; Lazy&amp;lt;MainWindowViewModel&amp;gt;();
            Validation.AddErrorHandler(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;, ErrorChangedHandler);
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; ErrorChangedHandler(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/span&gt; sender, ValidationErrorEventArgs e) {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (e.Action == ValidationErrorEventAction.Added) {
                errors.Add(e.Error);
            } &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;else&lt;/span&gt; {
                errors.Remove(e.Error);
            }

            viewModel.Value.IsValid &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; !errors.Any();
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; SetInterval() {
            var dispatcherTimer &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; DispatcherTimer();
            dispatcherTimer.Tick += &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; TimeSpan(0, 1, 0);
            dispatcherTimer.Start();
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; dispatcherTimer_Tick(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;object&lt;/span&gt; sender, EventArgs e) {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;try&lt;/span&gt; {
                var unitOfWork &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; EFUnitOfWork();
                var itemRepository &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; ItemRepository(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; EFRepository&amp;lt;Item&amp;gt;(), unitOfWork);
                var item &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; itemRepository.GetActive();
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (item !&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;null&lt;/span&gt;) {
                    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Update the status&lt;/span&gt;
                    item.Status &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;true&lt;/span&gt;;
                    itemRepository.Save();
                    unitOfWork.Save();
                    var balloon &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; FancyBalloon();
                    balloon.BalloonText &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; item.Name;
                    balloon.BalloonDescription &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; item.Description;
                    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//show balloon and close it after 4 seconds&lt;/span&gt;
                    MyNotifyIcon.ShowCustomBalloon(balloon, PopupAnimation.Slide, 4000);
                }
            } &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;catch&lt;/span&gt; (Exception ex) {
                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//swallow&lt;/span&gt;
            }
        }
    }
}&lt;/span&gt;&lt;/pre&gt;&lt;b&gt;&lt;u&gt;AddItemsView.xaml&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;pre&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;UserControl&lt;/span&gt; 
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;x:Class&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="ToDoListTest.Views.AddItemsView"&lt;/span&gt;
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;xmlns:mc&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/span&gt; 
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;xmlns:d&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="http://schemas.microsoft.com/expression/blend/2008"&lt;/span&gt; 
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;mc:Ignorable&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="d"&lt;/span&gt; 
             &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;d:DesignHeight&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="310"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;d:DesignWidth&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="200"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Grid&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="312"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &amp;lt;Grid.RowDefinitions&amp;gt;
            &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="55"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="89"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="62"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="56"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;RowDefinition&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="37*"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
        &amp;lt;/Grid.RowDefinitions&amp;gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Label&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Name"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="28"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="12,0,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="label1"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Label&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Description"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="28"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="12,51,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="label2"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt; Grid.RowSpan="2" /&amp;gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="{Binding Path=ActiveItem.Name, Mode=TwoWay,
            UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true,ValidatesOnExceptions=True, NotifyOnValidationError=True}"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="23"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="12,22,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="176"&lt;/span&gt; &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;TextBox&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="56"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="{Binding Path=ActiveItem.Description, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="12,22,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="176"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;TextWrapping&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Wrap"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt; Grid.Row="1" /&amp;gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Button&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Save"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Command&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="{Binding Path=SaveItem}"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;CommandParameter&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="{Binding}"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="25"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="113,14,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="button1"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="75"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt; Grid.Row="4" /&amp;gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Label&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Date to act"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="28"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="12,0,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="label4"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt; Grid.Row="2" /&amp;gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;DatePicker&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;SelectedDate&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="{Binding Path=ActiveItem.DateToAct, Mode=TwoWay}"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="25"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="12,0,0,5"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="datePicker1"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Bottom"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="176"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt; Grid.Row="2" /&amp;gt;
        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Label&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Content&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Time to act"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Height&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="28"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Left"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Margin&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="14,0,0,0"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="label3"&lt;/span&gt; &lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;="Top"&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt; Grid.Row="3" /&amp;gt;
        &amp;lt;ComboBox Grid.Row="3" SelectedItem="{Binding Path=ActiveItem.Hour}" ItemsSource="{Binding Path=Hours}" DisplayMemberPath="" Height="23" HorizontalAlignment="Left" Margin="14,23,0,0" Name="hourDDL" VerticalAlignment="Top" Width="40" /&amp;gt;
        &amp;lt;ComboBox Grid.Row="3" SelectedItem="{Binding Path=ActiveItem.Minute}"  ItemsSource="{Binding Path=Minutes}" Height="23" HorizontalAlignment="Right" Margin="0,23,100,0" Name="minuteDDL" VerticalAlignment="Top" Width="40" /&amp;gt;
    &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;UserControl&lt;/span&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;AddItemsView.xaml.cs&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; ToDoListTest.ViewModels;

&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;namespace&lt;/span&gt; ToDoListTest.Views {
    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/// Interaction logic for AddItemsView.xaml&lt;/span&gt;
    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; partial &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; AddItemsView : UserControl {

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; AddItemsView() {
            InitializeComponent();
        }
    }
}&lt;/span&gt;&lt;/pre&gt;MainWindowViewModel.cs&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Με κόκκινο είναι η μέθοδος που γίνεται συνέχεια initialize&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Controls.Primitives;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Windows.Threading;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; Domain.Infrastructure;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; Samples;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; Domain;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Collections.ObjectModel;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; ToDoListTest.Services;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Waf.Applications;

&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;namespace&lt;/span&gt; ToDoListTest.ViewModels {
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; MainWindowViewModel : ObservableObject {

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#region&lt;/span&gt; Declarations
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;readonly&lt;/span&gt; IDialogService _dialog;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#endregion&lt;/span&gt;

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#region&lt;/span&gt; Properties
         
      ......

       &lt;/span&gt;&lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&lt;font class="Apple-style-span" color="#FF0000"&gt; &lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;bool&lt;/span&gt; _isValid;
        &lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;bool&lt;/span&gt; IsValid {
            get { &lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; _isValid; }
            set {
                _isValid &lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; value;
                RaisePropertyChanged(&lt;span style="font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;"IsValid"&lt;/span&gt;);
            }
        }&lt;/font&gt;&lt;/span&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;
      
        
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#endregion&lt;/span&gt;

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#region&lt;/span&gt; Constructors

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; MainWindowViewModel() : &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; ModalDialogService()) { }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; MainWindowViewModel(IDialogService dialog) {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;._dialog &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; dialog;
            ItemResults &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; ObservableCollection&amp;lt;Item&amp;gt;();
            ShowNewItemForm &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Hidden"&lt;/span&gt;;
            Status &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Ready"&lt;/span&gt;;
            LoadItemResults();
            PrepareHoursAndMinutes();
        }
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#endregion&lt;/span&gt;

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#region&lt;/span&gt; Commands
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; ICommand AddNewItem {
            get { &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; RelayCommand(AddNewItemExecute); }
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; ICommand SaveItem {
            get { &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; RelayCommand(SaveItemExecute,CanSaveItem); }
        }

      .........

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#endregion&lt;/span&gt;

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#region&lt;/span&gt; Methods

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; SaveItemExecute() {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (ActiveItem == &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;null&lt;/span&gt;) {
                _dialog.ShowMessage(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Please select an item from the list to update it, or click the {New} button to create a new item."&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Oops!!"&lt;/span&gt;, DialogButton.OK, DialogImage.Error);
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt;;
            }

            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (ActiveItem.EntityKey !&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;null&lt;/span&gt;) {
                UpdateItem();
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt;;
            }

            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;try&lt;/span&gt; {
                var i &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; Item {
                    DateCreated &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; DateTime.Now,
                    DateToAct &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.ActiveItem.DateToAct,
                    Description &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.ActiveItem.Description,
                    Name &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.ActiveItem.Name,
                    TimeToAct &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; ActiveItem.TimeToAct,
                    Status &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;false&lt;/span&gt;
                };

                var unitOfWork &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; EFUnitOfWork();
                var itemRepository &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; ItemRepository(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; EFRepository&amp;lt;Item&amp;gt;(), unitOfWork);
                itemRepository.Add(i);
                unitOfWork.Save();
                ItemResults.Add(i);
                ActiveItem &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; Item();
                Status &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Saved!"&lt;/span&gt;;
            } &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;catch&lt;/span&gt; (Exception ex) {

                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;._dialog.ShowException(ex.Message);
            }
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;bool&lt;/span&gt; CanSaveItem() {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; IsValid;
        }

      ..............
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;#endregion&lt;/span&gt;
    }
}&lt;/span&gt;&lt;/pre&gt;Entity&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-weight:bold;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.ComponentModel.DataAnnotations;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Waf.Foundation;

&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;namespace&lt;/span&gt; Domain {
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;internal&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;interface&lt;/span&gt; IItem {
        [Required(ErrorMessage &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Please enter Title"&lt;/span&gt;)]
        [StringLength(100, ErrorMessage &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"The maximum length is 100"&lt;/span&gt;)]
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; Name { get; set; }
    }

    [MetadataType(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;typeof&lt;/span&gt;(IItem))]
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; partial &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; Item : IItem, IDataErrorInfo, IFormattable {
        [NonSerialized]
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;readonly&lt;/span&gt; DataErrorInfoSupport dataErrorInfoSupport;


        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; Item() {
            ID &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; Guid.NewGuid();
            dataErrorInfoSupport &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; DataErrorInfoSupport(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;);
        }   


        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; IDataErrorInfo.&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;[&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; memberName] { get { &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; dataErrorInfoSupport[memberName]; } }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; Error {
            get {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; dataErrorInfoSupport.Error;
            }
        }
    }
}&lt;/span&gt;&lt;/pre&gt;Έχω κάνει και αυτο το &lt;a href="http://www.dotnetzone.gr/cs/forums/thread/62995.aspx"&gt;post&lt;/a&gt;, αλλα είπα να κάνω καινούριο για να είναι πιο ξεκάθαρο το πρόβλημα που αντιμετωπίζω.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item></channel></rss>