<?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>Απ: Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63397.aspx</link><pubDate>Fri, 18 Feb 2011 23:15:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63397</guid><dc:creator>StrouMfios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63397.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63397</wfw:commentRss><description>Δεν μπορώ να καταλάβω που είναι το λάθος.&lt;div&gt;Τελικά το unregister του message δεν είναι λύση.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Το ίδιο πρόβλημα παρουσιάστηκε και σε άλλο σημείο της εφαρμογής. Οπότε κάτι κάνω λάθος και δεν ξέρω τι είναι αυτό.&lt;/div&gt;&lt;div&gt;Θα εκτιμούσα οποιαδήποτε βοήθεια. Το ψάχνω πολύ ώρα τώρα και δεν έχω καταφέρει τίποτα.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Η διαδικασία είναι η εξής:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;ανοίγει ένα παράθυρο και ο χρήστης κάνει εισαγωγή σε ένα textBox.&lt;/li&gt;&lt;li&gt;Πατάει save και εκτελείτε το AddNewHotelCommand --&amp;gt; κατόπιν η AddNewHotelExecute()&lt;/li&gt;&lt;li&gt;Γίνεται persist στην βάση, και γίνεται αποστολή ενός NotificationMessage για να κλείσει το view, το οποίο έχει γίνει register στο codeBehind του view.&lt;/li&gt;&lt;li&gt;Εκτελείται η μέθοδος NotificationMessageReceived &amp;nbsp; και κλείνει το view &amp;nbsp;&lt;b&gt;(εδώ είναι το πρόβλημα)&amp;nbsp;&lt;/b&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Το κακό είναι οτι όσες φορές και αν πατήσω το button για να ανοίξει το view, τόσες φορές θα μπεί σε αυτή την μέθοδο. &amp;nbsp;Εννοώ οτι πατάω το button, ανοίγει το view, το κλείνω(Μπήκε μία φορά). Κάνω την ίδια διαδικασία (μπαίνει δύο φορές) κ.ο.κ.&lt;/li&gt;&lt;/ol&gt;&lt;/ol&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;Hotel_Add_Select.xaml&lt;/div&gt;&lt;div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&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;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: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:HMT.ViewModels"&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;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;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;x:Class&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="HMT.WIndows.Hotel_Add_Select"&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;="400"&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;="600"&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:AddHotelsViewModel&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;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;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;="93"&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;
            &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;="32*"&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;="61*"&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;
            &amp;lt;Grid.ColumnDefinitions&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;ColumnDefinition&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;="147*"&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;ColumnDefinition&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;="318*"&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.ColumnDefinitions&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;="Όνομα ξενοδοχείου"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;/span&gt; Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Top" HorizontalAlignment="Left"/&amp;gt;
            &amp;lt;TextBox Grid.Column="1" Text="{Binding ActiveHotel.Name, Mode=TwoWay, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true, ValidatesOnExceptions=True}" Style="{DynamicResource mainTextBox}" VerticalAlignment="Top" HorizontalAlignment="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;Button&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 AddNewHotelCommand}"&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;="150"&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;="30"&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;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;Content&lt;/span&gt;&lt;span style="color:Blue;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;&lt;/span&gt; Grid.Row="1" Grid.Column="1" Style="{DynamicResource mainButton}" d:IsLocked="True"/&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;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;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;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;AddHotelsViewModel&lt;/div&gt;&lt;div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&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; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; AddHotelsViewModel : 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 style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; Hotel _activeHotel { get; set; }
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; Hotel ActiveHotel {
            get { &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; _activeHotel; }
            set {
                _activeHotel &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; value;
                RaisePropertyChanged(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ActiveHotel"&lt;/span&gt;);
            }
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; Hotel _selectedHotel { get; set; }
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; Hotel SelectedHotel {
            get { &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; _selectedHotel; }
            set {
                _selectedHotel &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; value;
                RaisePropertyChanged(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"SelectedHotel"&lt;/span&gt;);

                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Sends message to mainWindowViewModel&lt;/span&gt;
                Messenger.Default.Send(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; NotificationMessage&amp;lt;Hotel&amp;gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;, SelectedHotel, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"SelectedHotel"&lt;/span&gt;));
            }
        }

        &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;bool&lt;/span&gt; _isValid;
        &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; IsValid {
            get { &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; _isValid; }
            set {
                _isValid &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; value;
                RaisePropertyChanged(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"IsValid"&lt;/span&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; AddHotelsViewModel()
            : &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; AddHotelsViewModel(IDialogService dialogService) {
            &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; dialogService;
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.ActiveHotel &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; Hotel();
        }
        &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 AddNewHotelCommand {
            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(AddNewHotelExecute, CanAddNewHotel); }
        }
        &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;void&lt;/span&gt; AddNewHotelExecute() {
            &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 hotelRepos &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; HotelRepository(&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;Hotel&amp;gt;(), unitOfWork);
                hotelRepos.Add(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.ActiveHotel);
                unitOfWork.Save();
                _dialog.ShowMessage(&lt;span style="color:#666666;background-color:#e4e4e4;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;"Μήνυμα"&lt;/span&gt;, DialogButton.OK, DialogImage.None);
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.SelectedHotel &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;.ActiveHotel;
                Messenger.Default.Send(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; NotificationMessage(&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:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CloseAddHotelWIndow"&lt;/span&gt;), &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CloseAddHotelWIndow"&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) {
                _dialog.ShowException(ex.Message, DialogImage.Error);
            }
        }

        &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; CanAddNewHotel() {
            &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;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Hotel_Add_Select.xaml.cs&lt;/div&gt;&lt;div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&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; partial &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; Hotel_Add_Select : 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;AddHotelsViewModel&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; Hotel_Add_Select() {
            InitializeComponent();
            InitializeValidaton();
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.PreviewKeyDown += &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; KeyEventHandler(CloseOnEscape);
            Messenger.Default.Register&amp;lt;NotificationMessage&amp;gt;(&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:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CloseAddHotelWIndow"&lt;/span&gt;, NotificationMessageReceived);
        }

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;protected&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;override&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; OnClosing(CancelEventArgs e) {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (viewModel.Value.SelectedHotel == &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;null&lt;/span&gt;) {
                e.Cancel &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;;
                var messageBoxResult &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; MessageBox.Show(&lt;span style="color:#666666;background-color:#e4e4e4;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;"Προσοχή"&lt;/span&gt;, MessageBoxButton.YesNo,
                                MessageBoxImage.Error);
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;switch&lt;/span&gt; (messageBoxResult) {
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;case&lt;/span&gt; MessageBoxResult.Yes:
                        e.Cancel &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;;
                        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;break&lt;/span&gt;;
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;case&lt;/span&gt; MessageBoxResult.No:
                        e.Cancel &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;;
                        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;break&lt;/span&gt;;
                }
                &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: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;pre style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;&lt;span style="font-family:'Courier New';font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;/span&gt;        //Όσες φορές γίνει click στο button για να ανοίξει το view,  τόσες φορές θα έρθει σε αυτή την μέθοδο.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="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;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; NotificationMessageReceived(NotificationMessage msg) {
            &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;if&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;.IsNullOrEmpty(msg.Notification)) {
                &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;switch&lt;/span&gt; (msg.Notification) {
                    &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;case&lt;/span&gt; &lt;span style="font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;"CloseAddHotelWIndow"&lt;/span&gt;:
                        Close();
                        &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;break&lt;/span&gt;;
                }
            }
        }

        &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; CloseOnEscape(&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;object&lt;/span&gt; sender, KeyEventArgs 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.Key == Key.Escape)
                Close();
        }

        &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;AddHotelsViewModel&amp;gt;(() =&amp;gt; (AddHotelsViewModel)&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: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;this&lt;/span&gt;.Unloaded += &lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; RoutedEventHandler(Hotel_Add_Select_Unloaded);
            } &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; Hotel_Add_Select_Unloaded(&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;font-weight:normal;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e) {
            ((FrameworkElement)sender).Unloaded -= Hotel_Add_Select_Unloaded;
            errors.Clear();
            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&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ πολύ&lt;/div&gt;</description></item><item><title>Απ: Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63384.aspx</link><pubDate>Fri, 18 Feb 2011 20:31:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63384</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63384.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63384</wfw:commentRss><description>Προφανώς μένει κάποιο reference προς το παράθυρο...</description></item><item><title>Απ: Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63383.aspx</link><pubDate>Fri, 18 Feb 2011 20:27:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63383</guid><dc:creator>StrouMfios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63383.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63383</wfw:commentRss><description>Δεν κάνω κάτι συγκεκριμένο όταν κλείνω το παράθυρο. Απλά το κλείνω απο το (Χ).&lt;div&gt;Μάλλον κάτι θα έπρεπε να κάνω ε? &amp;nbsp;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/div&gt;</description></item><item><title>Απ: Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63382.aspx</link><pubDate>Fri, 18 Feb 2011 20:21:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63382</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63382.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63382</wfw:commentRss><description>&lt;P&gt;Αυτό τώρα εξαρτάται από τον κώδικά σου και το πώς ανοίγεις/κλείνεις τα views, δεν υπάρχει συγκεκριμένος τρόπος. Δες εκεί που κλείνει το παράθυρο τι ακριβώς&amp;nbsp;κάνεις.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63377.aspx</link><pubDate>Fri, 18 Feb 2011 19:35:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63377</guid><dc:creator>StrouMfios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63377.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63377</wfw:commentRss><description>Τα messages τα κάνω register στον constructor, οπότε όσες φορές άνοιγα το παράθυρο τόσες φορές γινόταν register το message.&lt;div&gt;Έκανα unregister το message και δείχνει να δουλεύει, αλλα το θέμα είναι οτι δεν ξέρω αν γίνονται, όπως είπες, dispose τα views.&lt;/div&gt;&lt;div&gt;Πως μπορώ να δω αν τα views δεν έχουν γίνει dispose?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63376.aspx</link><pubDate>Fri, 18 Feb 2011 19:21:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63376</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63376.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63376</wfw:commentRss><description>&lt;P&gt;Χμμμ... Για κάνε έναν έλεγχο πόσα views έχεις αφού ανοίξεις δυο-τρεις φορές το view. Έχω μια υποψία ότι δεν γίνονται dispose τα views και γι αυτό παραμένουν τα registrations των μηνυμάτων.&lt;/P&gt;
&lt;P&gt;Τα messages από μόνα τους είναι objects με weak references, το πολύ να χρειαστεί να κάνεις unsubscribe ωστόσο αν συμβαίνει αυτό που σου είπα προηγουμένως τότε δεν λύνεις το πρόβλημά σου καθώς συνεπάγεται ότι έχεις memory leaks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Messages should be closed, somehow, manually?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63365.aspx</link><pubDate>Fri, 18 Feb 2011 03:51:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63365</guid><dc:creator>StrouMfios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63365.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=63365</wfw:commentRss><description>Καλησπέρα σε όλους,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;όπως μου είχε προτείνει ο KelMan&lt;i&gt;(τον ευχαριστώ πολύ)&lt;/i&gt; χρησιμοποιώ το mediator Pattern για επικοινωνία μεταξύ viewModel και view.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;λοιπόν,&lt;/div&gt;&lt;div&gt;στο mainWindow έχω ενα menu όπου σε κάθε item του έχω ορίσει ενα command.&lt;/div&gt;&lt;div&gt;Όταν κάνω click σε ένα item στέλνω μήνυμα το οποίο το έχω κάνει register στο mainWindow.xaml.cs&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:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//MainWindow.xaml&lt;/span&gt;
&amp;lt;awc:ImageButton IsToolStyle=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"True"&lt;/span&gt;  Orientation=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Vertical"&lt;/span&gt; ImageSource=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt; Command=&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"{Binding ShowPricesWindowCommand}"&lt;/span&gt;&amp;gt;Prices&amp;lt;/awc:ImageButton&amp;gt;


 &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//MainWIndow ViewModel&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; ICommand ShowPricesWindowCommand {
        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(ShowPricesWindowExecute); }
    }
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; ShowPricesWindowExecute() {
        Messenger.Default.Send(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; NotificationMessage&amp;lt;Hotel&amp;gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;, SelectedHotel, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowPricesWindow"&lt;/span&gt;),
                               &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowPricesWindow"&lt;/span&gt;);
    }


&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//MainWindow.xaml.cs&lt;/span&gt;
Messenger.Default.Register&amp;lt;NotificationMessage&amp;lt;Hotel&amp;gt;&amp;gt;(&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:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowPricesWindow"&lt;/span&gt;, HotelPriceMessageReceived);

&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; HotelPriceMessageReceived(NotificationMessage&amp;lt;Hotel&amp;gt; selectedHotel) {
        var roomPrices &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; RoomPrices();&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//This view has the RoomPriceViewModel as dataContext&lt;/span&gt;
        roomPrices.Show();
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//via messaging I am sending the selectedHotel object&lt;/span&gt;
        Messenger.Default.Send(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; NotificationMessage&amp;lt;Hotel&amp;gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;, selectedHotel.Content, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowPricesWindow"&lt;/span&gt;),
                               &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowPricesWindow2"&lt;/span&gt;);
    }&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font class="Apple-style-span" face="'Courier New'"&gt;&lt;span class="Apple-style-span" style="font-size:11px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&gt;μου ανοίγει το ζητούμενο παράθυρο και μέσα απο το viewModel του(&lt;/font&gt;&lt;span class="Apple-style-span" style="font-family:'Courier New';font-size:11px;white-space:pre;"&gt;RoomPricesViewModel&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family:'Courier New';font-size:small;"&gt;), κάνω κάποιον έλεγχο και κλείνω το view που είχε ανοίξει και ανοίγω ένα άλλο.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&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; RoomPricesViewModel(IDialogService dialogService) {
        &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; dialogService;
        Messenger.Default.Register&amp;lt;NotificationMessage&amp;lt;Hotel&amp;gt;&amp;gt;(&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:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowPricesWindow2"&lt;/span&gt;, NotificationMessageReceived);
    }

    &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; NotificationMessageReceived(NotificationMessage&amp;lt;Hotel&amp;gt; selectedHotel) {
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.SelectedHotel &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; selectedHotel.Content;
        LoadRooms();
    }

&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; LoadRooms() {
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (rooms.Count == 0) {
            dialogResponse &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; _dialog.ShowMessage(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Display a message;"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;""&lt;/span&gt;, DialogButton.YesNo, DialogImage.Warning);
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;switch&lt;/span&gt; (dialogResponse) {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;case&lt;/span&gt; DialogResponse.Yes:
                    &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//close the RoomPrices window and open the RoomTypesWindow&lt;/span&gt;
                    Messenger.Default.Send(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; NotificationMessage&amp;lt;Hotel&amp;gt;(&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;this&lt;/span&gt;.SelectedHotel, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CloseWindowAndOpenRoomTypes"&lt;/span&gt;), &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CloseWindowAndOpenRoomTypes"&lt;/span&gt;);
                    &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;break&lt;/span&gt;;
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;case&lt;/span&gt; DialogResponse.No:
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;break&lt;/span&gt;;
            }
        }
    }&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&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; RoomPrices() {
            InitializeComponent();
            Messenger.Default.Register&amp;lt;NotificationMessage&amp;lt;Hotel&amp;gt;&amp;gt;(&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:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CloseWindowAndOpenRoomTypes"&lt;/span&gt;, CloseWindowAndOpenRoomTypes);
        }

 &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; CloseWindowAndOpenRoomTypes(NotificationMessage&amp;lt;Hotel&amp;gt; selectedHotel) {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (selectedHotel.Sender == &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.DataContext) {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;.Close();
                Messenger.Default.Send(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; NotificationMessage&amp;lt;Hotel&amp;gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;this&lt;/span&gt;, selectedHotel.Content, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowRoomsWindow"&lt;/span&gt;),
                                   &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"ShowRoomsWindow"&lt;/span&gt;);
            }
        }&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;Αυτή η διαδικάσία λειτουργεί "σωστά" για μία φορά μόνο.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&gt;Αν κλείσω και το δεύτερο παράθυρο που έχει ανοίξει και ξαναπατήσω το item στο menu, τότε η όλη διαδικασία θα επαναληφθεί δύο φορές.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&gt;Το ίδιο συμβαίνει για όσες φορές και αν πατήσω το item.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&gt;Πρέπει τα messages να τα κλείνω με κάποιον τρόπο?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Courier New'" size="2"&gt;Ευχαριστώ&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</description></item></channel></rss>