{"id":201240,"date":"2013-11-18T12:46:04","date_gmt":"2013-11-18T08:46:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=201240"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=201240","title":{"rendered":"<span class=\"post_title\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 3. MVVM<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0418 \u0442\u0430\u043a, \u043a\u0430\u043a \u0438 \u043e\u0431\u0435\u0449\u0430\u043b, \u0442\u0440\u0435\u0442\u044c\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b WP8 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 MVVM. \u0414\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043d\u0435\u0442\u0435\u0440\u043f\u0435\u043b\u0438\u0432\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 <a href=\"https:\/\/github.com\/struggleendlessly\/SE-Matrix-MVVM\/tree\/SE\/SE_Matrix_2d_v_14\">Github<\/a>, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0443 \u0441\u0435\u0431\u044f \u043d\u0430 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0435, \u0441\u043a\u0430\u0447\u0430\u0432 \u0441 <a href=\"http:\/\/www.windowsphone.com\/ru-ru\/store\/app\/se-matrix\/a2b8957e-cf16-4dec-8b06-5d591b351893?signin=true\">Windows Phone Store<\/a>.<\/p>\n<p>  \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u043e\u0432 HD720P (720&#215;1280), WVGA (480&#215;800), WXGA (768&#215;1280). \u0415\u0441\u0442\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043c\u0438\u043d\u0443\u0441: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u0442 480&#215;800, \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u0442\u0443 \u0438 \u0448\u0438\u0440\u0438\u043d\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 Grid \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0438\u0434\u0430. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<p>  <a href=\"http:\/\/habrahabr.ru\/post\/195422\/\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 1<\/a><br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/195760\/\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 2<\/a><br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/201240\/\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 3. MVVM<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/9fa\/b74\/b23\/9fab74b234353e9f8fabde2b526b7aaf.png\"\/>  <\/p>\n<h6>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u0432\u0438\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 WVGA (480&#215;800)<\/h6>\n<p>  <a name=\"habracut\"><\/a><br \/>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/WPk5S2IVreA?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe>  <\/p>\n<h6>\u041e\u0431\u0437\u043e\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 WVGA (480&#215;800)<\/h6>\n<p>  <\/p>\n<h4>\u041f\u0440\u043e MVVM<\/h4>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u00ab\u041f\u0430\u043d\u043e\u0440\u043c\u0430 \u0441 MVVM\u00bb. \u041d\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u043c \u0442\u0430\u043a, \u0447\u0442\u043e \u0431 \u0432\u0441\u0435 \u0442\u044f\u043d\u0443\u043b\u043e\u0441\u044c \u0438\u0437 \u0411\u0414. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043f\u043e\u0447\u043a\u0443 \u00abModels\u00bb \u0438 \u00abDB\u00bb. \u0412 Models \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u0430 \u0432 DB \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u044d\u0442\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0411\u0414, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0435\u0435 \u043d\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043a\u043b\u0430\u0441\u0441 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 DataContext. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043a\u043b\u0430\u0441\u0441\u0435, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c DataContext, SeDataContext \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043e\u0434\u043d\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u2014 Model_Matrixes, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0411\u0414. \u041e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430 \u043b\u0438\u0448\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u043a\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043d\u0435\u0435 \u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u0437\u043c\u0435\u0439\u043a\u0438. <\/p>\n<h4>\u0414\u0435\u0440\u0435\u0432\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h4>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/e76\/ca2\/a4b\/e76ca2a4bf2855779d8aba645e173c91.png\"\/><\/p>\n<h4>\u041f\u0430\u043f\u043e\u0447\u043a\u0430 \u00abModels\u00bb<\/h4>\n<p>  <\/p>\n<ul>\n<li>ModelBase \u2014 \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0432\u0441\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b INotifyPropertyChanged, INotifyPropertyChanging, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 UI \u0432 \u0440\u0435\u0436\u0438\u043c\u0430\u0445 One\/Two way.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">ModelBase<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.Models {     public class ModelBase : INotifyPropertyChanged, INotifyPropertyChanging     {         #region INotifyPropertyChanged          public event PropertyChangedEventHandler PropertyChanged;          \/\/ Used to notify that a property changed         protected void NotifyPropertyChanged(string propertyName)         {             if (PropertyChanged != null)             {                 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));             }         }          #endregion          #region INotifyPropertyChanging          public event PropertyChangingEventHandler PropertyChanging;          \/\/ Used to notify that a property is about to change         protected void NotifyPropertyChanging(string propertyName)         {             if (PropertyChanging != null)             {                 PropertyChanging(this, new PropertyChangingEventArgs(propertyName));             }         }          #endregion     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h5>\u041f.\u0421. \u041f\u0440\u043e #region \u0421\u043b\u043e\u0432\u0430 &#8230;..#endregion. <\/h5>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u044d\u0442\u043e \u043d\u043e\u0432\u043e\u0435, \u0442\u043e \u043f\u043e\u044f\u0441\u043d\u044f\u044e: \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430. \u0415\u043b\u0438 \u0432 Visual Studio \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u00ab\u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00bb(\u0437\u043d\u0430\u043a \u043c\u0438\u043d\u0443\u0441), \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/01c\/8b9\/434\/01c8b9434f04caae1eb849f00ef75cf1.png\"\/><\/p>\n<\/li>\n<li>Model_Matrixes \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0435\u0442\u043a\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u0441\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438. \u0421\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 XAML \u043a\u043e\u0434\u043e\u043c \u043a\u0430\u043a \u00abOne way\u00bb, \u0442\u043e\u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0438 \u0432 UI. \u0422\u0430\u043a \u0436\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d, \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u0430 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432 SeDataContext \u0442\u043e, \u0447\u0442\u043e \u0411\u0414 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u0438\u043f \u043f\u043e\u043b\u044f \u043a\u0430\u043a SolidColorBrush, \u0430 \u0441 \u043d\u0438\u043c \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0435\u0439. \u0425\u043e\u0442\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">Model_Matrixes<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.Data.Linq.Mapping; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media;  namespace SE_Matrix_2d_v_14.Models {     [Table]     public class Model_Matrixes : ModelBase     {         \/\/ Define ID: private field, public property, and database column.         private int _id;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Matrixes ID         \/\/\/ &lt;\/summary&gt;         [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = &quot;INT NOT NULL Identity&quot;, CanBeNull = false, AutoSync = AutoSync.OnInsert)]         public int ID         {             get { return _id; }             set             {                 if (_id != value)                 {                     NotifyPropertyChanging(&quot;ID&quot;);                     _id = value;                     NotifyPropertyChanged(&quot;ID&quot;);                 }             }         }          private string _matrix_Name;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Matrixes Matrix_Name         \/\/\/ &lt;\/summary&gt;         [Column]         public string Matrix_Name         {             get { return _matrix_Name; }             set             {                 if (_matrix_Name != value)                 {                     NotifyPropertyChanging(&quot;Matrix_Name&quot;);                     _matrix_Name = value;                     NotifyPropertyChanged(&quot;Matrix_Name&quot;);                 }             }         }          private string _matrix_Text;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Matrixes Matrix_Text         \/\/\/ &lt;\/summary&gt;         [Column]         public string Matrix_Text         {             get { return _matrix_Text; }             set             {                 if (_matrix_Text != value)                 {                     NotifyPropertyChanging(&quot;Matrix_Text&quot;);                     _matrix_Text = value;                     NotifyPropertyChanged(&quot;Matrix_Text&quot;);                 }             }         }          private int _matrix_FontSize;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Matrixes Matrix_FontSize         \/\/\/ &lt;\/summary&gt;         [Column]         public int Matrix_FontSize         {             get { return _matrix_FontSize; }             set             {                 if (_matrix_FontSize != value)                 {                     NotifyPropertyChanging(&quot;Matrix_FontSize&quot;);                     _matrix_FontSize = value;                     NotifyPropertyChanged(&quot;Matrix_FontSize&quot;);                 }             }         }          private SolidColorBrush _matrix_Foreground;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Matrixes Matrix_Foreground         \/\/\/ &lt;\/summary&gt;         [Column]         public SolidColorBrush Matrix_Foreground         {             get { return _matrix_Foreground; }             set             {                 if (_matrix_Foreground != value)                 {                     NotifyPropertyChanging(&quot;Matrix_Foreground&quot;);                     _matrix_Foreground = value;                     NotifyPropertyChanged(&quot;Matrix_Foreground&quot;);                 }             }         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<li>Model_Colors \u2014 \u043c\u043e\u0434\u0435\u043b\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0446\u0432\u0435\u0442\u0430.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">Model_Colors<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.Data.Linq.Mapping; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Windows.Media;  namespace SE_Matrix_2d_v_14.Models {     [Table]     [DataContract]     public class Model_Colors : ModelBase     {         \/\/ Define ID: private field, public property, and database column.         private int _id;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Colors ID         \/\/\/ &lt;\/summary&gt;         [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = &quot;INT NOT NULL Identity&quot;, CanBeNull = false, AutoSync = AutoSync.OnInsert)]         public int ID         {             get { return _id; }             set             {                 if (_id != value)                 {                     NotifyPropertyChanging(&quot;ID&quot;);                     _id = value;                     NotifyPropertyChanged(&quot;ID&quot;);                 }             }         }          private string _name;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Colors Name         \/\/\/ &lt;\/summary&gt;         [Column]         public string Name         {             get { return _name; }             set             {                 if (_name != value)                 {                     NotifyPropertyChanging(&quot;Name&quot;);                     _name = value;                     NotifyPropertyChanged(&quot;Name&quot;);                 }             }         }          private string _nameForTranslate;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Colors NameForTranslate         \/\/\/ &lt;\/summary&gt;         [Column]         public string NameForTranslate         {             get { return _nameForTranslate; }             set             {                 if (_nameForTranslate != value)                 {                     NotifyPropertyChanging(&quot;NameForTranslate&quot;);                     _nameForTranslate = value;                     NotifyPropertyChanged(&quot;NameForTranslate&quot;);                 }             }         }          private string _value;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_Colors Value         \/\/\/ &lt;\/summary&gt;         [Column]         public string Value         {             get { return _value; }             set             {                 if (_value != value)                 {                     NotifyPropertyChanging(&quot;Value&quot;);                     _value = value;                     NotifyPropertyChanged(&quot;Value&quot;);                 }             }         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/li>\n<li>Model_SettingsSymbols \u2014 \u043c\u043e\u0434\u0435\u043b\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043c\u0435\u0435\u043a \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438, \u0434\u043b\u0438\u043d\u0430 \u0437\u043c\u0435\u0439\u043a\u0438 \u0438 \u0434\u0440.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">Model_SettingsSymbols<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.Data.Linq; using System.Data.Linq.Mapping; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.Models {     [Table()]     public class Model_SettingsSymbols : ModelBase     {         \/\/ Define ID: private field, public property, and database column         private int _id;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols ID         \/\/\/ &lt;\/summary&gt;         [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = &quot;INT NOT NULL Identity&quot;, CanBeNull = false, AutoSync = AutoSync.OnInsert)]         public int ID         {             get { return _id; }             set             {                 if (_id != value)                 {                     NotifyPropertyChanging(&quot;ID&quot;);                     _id = value;                     NotifyPropertyChanged(&quot;ID&quot;);                 }             }         }          private string _param_Name;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols Param_Name         \/\/\/ &lt;\/summary&gt;         [Column]         public string Param_Name         {             get { return _param_Name; }             set             {                 if (_param_Name != value)                 {                     NotifyPropertyChanging(&quot;Param_Name&quot;);                     _param_Name = value;                     NotifyPropertyChanged(&quot;Param_Name&quot;);                 }             }         }          private int _param_Value;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols Param_Value         \/\/\/ &lt;\/summary&gt;         [Column]         public int Param_Value         {             get { return _param_Value; }             set             {                 if (_param_Value != value)                 {                     NotifyPropertyChanging(&quot;Param_Value&quot;);                     _param_Value = value;                     NotifyPropertyChanged(&quot;Param_Value&quot;);                 }             }         }          private string _nameForTranslate;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols NameForTranslate         \/\/\/ &lt;\/summary&gt;         [Column]         public string NameForTranslate         {             get { return _nameForTranslate; }             set             {                 if (_nameForTranslate != value)                 {                     NotifyPropertyChanging(&quot;NameForTranslate&quot;);                     _nameForTranslate = value;                     NotifyPropertyChanged(&quot;NameForTranslate&quot;);                 }             }         }          \/\/ Version column aids update performance.         [Column(IsVersion = true)]         private Binary _version;     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/li>\n<li>Module_Languages \u2014 \u043c\u043e\u0434\u0435\u043b\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u044f\u0437\u044b\u043a, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">Module_Languages<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.Data.Linq.Mapping; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.Models {     [Table]     public class Module_Languages : ModelBase     {         \/\/ Define ID: private field, public property, and database column.         private int _id;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols ID         \/\/\/ &lt;\/summary&gt;         [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = &quot;INT NOT NULL Identity&quot;, CanBeNull = false, AutoSync = AutoSync.OnInsert)]         public int ID         {             get { return _id; }             set             {                 if (_id != value)                 {                     NotifyPropertyChanging(&quot;ID&quot;);                     _id = value;                     NotifyPropertyChanged(&quot;ID&quot;);                 }             }         }          \/\/ \u0418\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430         private string _name;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols ID         \/\/\/ &lt;\/summary&gt;         [Column]         public string Name         {             get { return _name; }             set             {                 if (_name != value)                 {                     NotifyPropertyChanging(&quot;Name&quot;);                     _name = value;                     NotifyPropertyChanged(&quot;Name&quot;);                 }             }         }          \/\/ \u0418\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430         private string _nameForTranslate;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols ID         \/\/\/ &lt;\/summary&gt;         [Column]         public string NameForTranslate         {             get { return _nameForTranslate; }             set             {                 if (_nameForTranslate != value)                 {                     NotifyPropertyChanging(&quot;NameForTranslate&quot;);                     _nameForTranslate = value;                     NotifyPropertyChanged(&quot;NameForTranslate&quot;);                 }             }         }          \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430         private int _valueFrom;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols ValueFrom         \/\/\/ &lt;\/summary&gt;         [Column]         public int ValueFrom         {             get { return _valueFrom; }             set             {                 if (_valueFrom != value)                 {                     NotifyPropertyChanging(&quot;ValueFrom&quot;);                     _valueFrom = value;                     NotifyPropertyChanged(&quot;ValueFrom&quot;);                 }             }         }          \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430         private int _valueTo;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols ValueTo         \/\/\/ &lt;\/summary&gt;         [Column]         public int ValueTo         {             get { return _valueTo; }             set             {                 if (_valueTo != value)                 {                     NotifyPropertyChanging(&quot;ValueTo&quot;);                     _valueTo = value;                     NotifyPropertyChanged(&quot;ValueTo&quot;);                 }             }         }          private bool _selected;         \/\/\/ &lt;summary&gt;         \/\/\/ \u0422\u0430\u0431\u043b\u0438\u0446\u0430 Model_SettingsSymbols Selected         \/\/\/ &lt;\/summary&gt;         [Column]         public bool Selected         {             get { return _selected; }             set             {                 if (_selected != value)                 {                     NotifyPropertyChanging(&quot;Selected&quot;);                     _selected = value;                     NotifyPropertyChanged(&quot;Selected&quot;);                 }             }         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/li>\n<\/ul>\n<p>  \u041a\u0440\u0430\u0442\u043a\u043e \u043e \u043c\u043e\u0434\u0435\u043b\u044f\u0445: \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043a\u0430\u043a \u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u00abCode first\u00bb. \u041a\u0430\u0436\u0434\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u2014 \u044d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432 \u0411\u0414. \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0435\u0446.<br \/>  \u0412 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 \u00abset\u00bb: NotifyPropertyChanging \u0438 NotifyPropertyChanged \u2014 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u0434 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 MSDN: <a href=\"http:\/\/msdn.microsoft.com\/ru-ru\/library\/system.componentmodel.inotifypropertychanged(v=vs.110).aspx\">INotifyPropertyChanged<\/a> \u0438 <a href=\"http:\/\/msdn.microsoft.com\/ru-ru\/library\/system.componentmodel.inotifypropertychanging(v=vs.110).aspx\">INotifyPropertyChanging<\/a>.<\/p>\n<h4>\u041f\u0430\u043f\u043e\u0447\u043a\u0430 \u00abDB\u00bb<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u041a\u043b\u0430\u0441\u0441 SeDataContext \u2014 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 <a href=\"http:\/\/msdn.microsoft.com\/ru-ru\/library\/system.data.linq.datacontext(v=vs.110).aspx\">DataContext<\/a><br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">SeDataContext<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.Models; using System; using System.Collections.Generic; using System.Data.Linq; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.DB {     \/\/\/ &lt;summary&gt;     \/\/\/ \u041a\u043e\u043d\u0435\u0442\u0435\u043a\u0441\u0442 \u0411\u0414     \/\/\/ &lt;\/summary&gt;     public class SeDataContext : DataContext     {         \/\/ Pass the connection string to the base class.         public SeDataContext(string connectionString)             : base(connectionString)         { }          \/\/ Specify a table         public Table&lt;Model_SettingsSymbols&gt; DB_SettingsSymbol;                  \/\/ Specify a table         public Table&lt;Module_Languages&gt; DB_Language;          \/\/ Specify a table         public Table&lt;Model_Colors&gt; DB_Color;     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<li>\u041a\u043b\u0430\u0441\u0441 CheckDbExist \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043d\u0443\u0436\u043d\u0430\u044f \u0411\u0414, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. <br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">CheckDbExist<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.Models; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.DB {     public class CheckDbExist     {         \/\/\/ &lt;summary&gt;         \/\/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0411\u0414, \u0438 \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 - \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;DBConnectionString&quot;&gt;\u0421\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u0447\u0435\u043d\u0438\u0435 \u043a \u0411\u0414&lt;\/param&gt;          public CheckDbExist(string DBConnectionString)          {              \/\/ Create the database if it does not exist.              using (SeDataContext db = new SeDataContext(DBConnectionString))              {                  if (db.DatabaseExists() == false)                  {                      db.CreateDatabase();                       new FillSettingsSymbol(db);                      new FillColors(db);                      new FillLanguages(db);                       db.SubmitChanges();                  }              }          }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0423 \u0412\u0430\u0441 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a \u0432\u043e\u043f\u0440\u043e\u0441, \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u0438 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f DBConnectionString, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0411\u0414. \u041e\u0442\u0432\u0435\u0442: App.xaml.cs.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">App.xaml.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.Linq; using System.Diagnostics; using System.Resources; using System.Windows; using System.Windows.Markup; using System.Windows.Navigation; using Microsoft.Phone.Controls; using Microsoft.Phone.Shell; using SE_Matrix_2d_v_14.Resources; using SE_Matrix_2d_v_14.ViewModels; using SE_Matrix_2d_v_14.Models; using SE_Matrix_2d_v_14.DB; using System.Windows.Media; using System.Runtime.Serialization; using System.IO; using System.Text;  namespace SE_Matrix_2d_v_14 {     public partial class App : Application     {         private static MainViewModel viewModel = null;          \/\/ \u0421\u0442\u0440\u043e\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u0411\u0414         string DBConnectionString = &quot;Data Source=isostore:\/Matrix333.sdf&quot;;          \/\/\/ &lt;summary&gt;         \/\/\/ \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 ViewModel, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438.         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;returns&gt;\u041e\u0431\u044a\u0435\u043a\u0442 MainViewModel.&lt;\/returns&gt;         public static MainViewModel ViewModel         {             get             {                 return viewModel;             }         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c\u0443 \u043a\u0430\u0434\u0440\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430.         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;returns&gt;\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0434\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430.&lt;\/returns&gt;         public static PhoneApplicationFrame RootFrame { get; private set; }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.         \/\/\/ &lt;\/summary&gt;         public App()         {             \/\/ \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435\u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.             UnhandledException += Application_UnhandledException;              \/\/ \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f XAML             InitializeComponent();              \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430             InitializePhoneApplication();              \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430             InitializeLanguage();              \/\/ \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438.             if (Debugger.IsAttached)             {                 \/\/ \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0441\u043c\u0435\u043d\u044b \u043a\u0430\u0434\u0440\u043e\u0432.                 Application.Current.Host.Settings.EnableFrameRateCounter = true;                  \/\/ \u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 \u043f\u0443\u0442\u0435\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f                 \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.                 \/\/ \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c                 \/\/ \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0442\u044c \u044d\u043d\u0435\u0440\u0433\u0438\u044e \u0431\u0430\u0442\u0430\u0440\u0435\u0438, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.                 PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;             }              \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0442\u0430\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438             new CheckDbExist(DBConnectionString);              \/\/ \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u0438\u0434\u0430             viewModel = new MainViewModel(DBConnectionString);              \/\/ Query the local database and load observable collections.             viewModel.LoadData();          } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<li>\u041a\u043b\u0430\u0441\u0441 FillColors \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Model_Colors \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">FillColors<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.DB {     public class FillColors     {         \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Model_Colors \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;db&quot;&gt;\u041e\u0431\u044a\u0435\u043a\u0442 \u0411\u0414, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f&lt;\/param&gt;         public FillColors(SeDataContext db)         {             db.DB_Color.InsertOnSubmit(new Model_Colors { Name = &quot;Param_Color_FirstSymbol&quot;, Value = &quot;#FFF8F8FF&quot;, NameForTranslate = &quot;a&quot; });             db.DB_Color.InsertOnSubmit(new Model_Colors { Name = &quot;Param_Color_Background&quot;, Value = &quot;#FF000000&quot;, NameForTranslate = &quot;a&quot; });             db.DB_Color.InsertOnSubmit(new Model_Colors { Name = &quot;Param_Color_GradientFrom&quot;, Value = &quot;#FF00FF00&quot;, NameForTranslate = &quot;a&quot; });             db.DB_Color.InsertOnSubmit(new Model_Colors { Name = &quot;Param_Color_GradientTo&quot;, Value = &quot;#FF00AA99&quot;, NameForTranslate = &quot;a&quot; });         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<li>\u041a\u043b\u0430\u0441\u0441 FillLanguages \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Module_Languages \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. <br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">FillLanguages<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.DB {     public class FillLanguages     {         \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Model_Colors \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;db&quot;&gt;\u041e\u0431\u044a\u0435\u043a\u0442 \u0411\u0414, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f&lt;\/param&gt;         public FillLanguages(SeDataContext db)         {             db.DB_Language.InsertOnSubmit(new Module_Languages { Name = &quot;English&quot;, ValueFrom = 64, ValueTo = 127, NameForTranslate = &quot;a&quot;, Selected = true });             db.DB_Language.InsertOnSubmit(new Module_Languages { Name = &quot;Russion&quot;, ValueFrom = 1040, ValueTo = 1103, NameForTranslate = &quot;a&quot;, Selected = false });             db.DB_Language.InsertOnSubmit(new Module_Languages { Name = &quot;Chinese&quot;, ValueFrom = 19968, ValueTo = 20223, NameForTranslate = &quot;a&quot;, Selected = false });             db.DB_Language.InsertOnSubmit(new Module_Languages { Name = &quot;Numbers&quot;, ValueFrom = 48, ValueTo = 57, NameForTranslate = &quot;a&quot;, Selected = false });         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<li>\u041a\u043b\u0430\u0441\u0441 FillSettingsSymbol \u2014 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Model_SettingsSymbols \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. <br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">FillSettingsSymbol<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.DB {     public class FillSettingsSymbol     {         \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Model_Colors \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;db&quot;&gt;\u041e\u0431\u044a\u0435\u043a\u0442 \u0411\u0414, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f&lt;\/param&gt;         public FillSettingsSymbol(SeDataContext db)         {             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_Iteration&quot;, Param_Value = 6, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_CountSimultaneously&quot;, Param_Value = 3, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_SpeedTo&quot;, Param_Value = 50, NameForTranslate = &quot;a&quot; });             \/\/db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_AddingSize&quot;, Param_Value = 2, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_FontSize&quot;, Param_Value = 15, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_MinLength&quot;, Param_Value = 5, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_MaxLength&quot;, Param_Value = 15, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_WindowWidth&quot;, Param_Value = 420, NameForTranslate = &quot;a&quot; });             db.DB_SettingsSymbol.InsertOnSubmit(new Model_SettingsSymbols { Param_Name = &quot;Param_WindowHeight&quot;, Param_Value = 671, NameForTranslate = &quot;a&quot; });         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<\/ul>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/h4>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0446\u0432\u0435\u0442\u0430 \u043d\u0435\u0442, \u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Coding4fun \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 ColorPicker. \u0414\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u044f\u0437\u044b\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Windows Phone Toolkit, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 ListPicker. \u041e\u0431\u0435 \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 NuGet.<\/p>\n<h4>MainPage.xaml<\/h4>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 Binding.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">MainPage.xaml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;phone:PhoneApplicationPage     xmlns=&quot;http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml\/presentation&quot;     xmlns:x=&quot;http:\/\/schemas.microsoft.com\/winfx\/2006\/xaml&quot;     xmlns:phone=&quot;clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone&quot;     xmlns:Controls=&quot;clr-namespace:Coding4Fun.Toolkit.Controls;assembly=Coding4Fun.Toolkit.Controls&quot;      xmlns:shell=&quot;clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone&quot;     xmlns:d=&quot;http:\/\/schemas.microsoft.com\/expression\/blend\/2008&quot;     xmlns:mc=&quot;http:\/\/schemas.openxmlformats.org\/markup-compatibility\/2006&quot;     xmlns:toolkit=&quot;clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit&quot;      x:Class=&quot;SE_Matrix_2d_v_14.MainPage&quot;     mc:Ignorable=&quot;d&quot;     SupportedOrientations=&quot;Portrait&quot;  Orientation=&quot;Portrait&quot;     shell:SystemTray.IsVisible=&quot;False&quot;&gt;     &lt;!--   Resources      d:DataContext=&quot;{d:DesignData SampleData\/MainViewModelSampleData.xaml}&quot; --&gt;     &lt;phone:PhoneApplicationPage.Resources&gt;                 &lt;!--   SettingsSymbols   --&gt;         &lt;DataTemplate x:Key=&quot;Resources_SettingsSymbols&quot;&gt;             &lt;Grid&gt;                 &lt;Grid.RowDefinitions&gt;                     &lt;RowDefinition Height=&quot;30&quot;\/&gt;                     &lt;RowDefinition Height=&quot;70&quot;\/&gt;                 &lt;\/Grid.RowDefinitions&gt;                 &lt;TextBlock Grid.Row=&quot;0&quot; Text=&quot;{Binding NameForTranslate}&quot;  \/&gt;                 &lt;TextBox x:Name=&quot;TextBox_Param_Value&quot;         \t\t\tTag=&quot;{Binding ID}&quot;         \t\t\tInputScope=&quot;Number&quot;         \t\t\tGrid.Row=&quot;1&quot;          \t\t\tWidth=&quot;300&quot;         \t\t\tHorizontalAlignment=&quot;Left&quot;         \t\t\tText=&quot;{Binding Param_Value, Mode=TwoWay}&quot;          \t\t\tTextChanged=&quot;Event_TextBox_TextChanged_SettingSymbols&quot;         \t\t\tLostFocus=&quot;Event_TextBox_LostFocus_SettingsSymbols&quot;  \/&gt;             &lt;\/Grid&gt;         &lt;\/DataTemplate&gt;          &lt;!--   SettingsColor   --&gt;         &lt;DataTemplate x:Key=&quot;SettingsColor&quot;&gt;             &lt;Grid&gt;                 &lt;Grid.RowDefinitions&gt;                     &lt;RowDefinition Height=&quot;25&quot;\/&gt;                     &lt;RowDefinition Height=&quot;100&quot;\/&gt;                 &lt;\/Grid.RowDefinitions&gt;                 &lt;TextBlock Grid.Row=&quot;0&quot; Text=&quot;{Binding NameForTranslate}&quot; \/&gt;                 &lt;Rectangle Grid.Row=&quot;1&quot; Fill=&quot;{Binding Value, Mode=TwoWay}&quot; Tag=&quot;{Binding ID}&quot; HorizontalAlignment=&quot;Left&quot; Height=&quot;75&quot; Margin=&quot;0,10,0,0&quot;  Stroke=&quot;Transparent&quot; VerticalAlignment=&quot;Top&quot; Width=&quot;420&quot; Tap=&quot;Event_Rectangle_Tap_ChangeColor&quot;\/&gt;             &lt;\/Grid&gt;         &lt;\/DataTemplate&gt;          &lt;!--   Matrix   --&gt;         &lt;DataTemplate x:Key=&quot;Matrix&quot;&gt;             &lt;TextBlock  x:Uid=&quot;{Binding Matrix_Name}&quot;          \t\tText=&quot;{Binding Matrix_Text, Mode=TwoWay}&quot;         \t\tFontSize=&quot;{Binding Matrix_FontSize}&quot;         \t\tForeground=&quot;{Binding Matrix_Foreground}&quot;                                             \/&gt;         &lt;\/DataTemplate&gt;          &lt;!--   ListPicker   --&gt;         &lt;DataTemplate x:Key=&quot;ListPickerItemTemplate&quot;&gt;             &lt;TextBlock Text=&quot;{Binding NameForTranslate}&quot;  \/&gt;         &lt;\/DataTemplate&gt;         &lt;DataTemplate x:Key=&quot;ListPickerFullItemTemplate&quot;&gt;             &lt;TextBlock Text=&quot;{Binding NameForTranslate}&quot; FontSize=&quot;{StaticResource PhoneFontSizeExtraLarge}&quot; \/&gt;         &lt;\/DataTemplate&gt;     &lt;\/phone:PhoneApplicationPage.Resources&gt;      &lt;phone:PhoneApplicationPage.FontFamily&gt;         &lt;StaticResource ResourceKey=&quot;PhoneFontFamilyNormal&quot;\/&gt;     &lt;\/phone:PhoneApplicationPage.FontFamily&gt;     &lt;phone:PhoneApplicationPage.FontSize&gt;         &lt;StaticResource ResourceKey=&quot;PhoneFontSizeNormal&quot;\/&gt;     &lt;\/phone:PhoneApplicationPage.FontSize&gt;     &lt;phone:PhoneApplicationPage.Foreground&gt;         &lt;StaticResource ResourceKey=&quot;PhoneForegroundBrush&quot;\/&gt;     &lt;\/phone:PhoneApplicationPage.Foreground&gt;      &lt;!-- LayoutRoot \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0441\u0435\u0442\u043a\u0443, \u0433\u0434\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b--&gt;     &lt;Grid x:Name=&quot;LayoutRoot&quot; Background=&quot;Transparent&quot;&gt;          &lt;phone:Panorama&gt;             &lt;phone:Panorama.Background&gt;                 &lt;ImageBrush ImageSource=&quot;\/SE_Matrix_2d_v_14;component\/Assets\/PanoramaBackground.png&quot;\/&gt;             &lt;\/phone:Panorama.Background&gt;              &lt;!--\u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Panorama  --&gt;             &lt;phone:PanoramaItem Header=&quot;SE \u041c\u0430\u0442\u0440\u0438\u0446\u0430&quot;&gt;                 &lt;phone:LongListSelector \t\t\t\t\tMargin=&quot;0,0,0,5&quot; \t\t\t\t\tItemsSource=&quot;{Binding ItemSourceMatrix}&quot; \t\t\t\t\tx:Name=&quot;LongListSelector_Matrix&quot;  \t\t\t\t\tLoaded=&quot;Event_LongListSelector_OnLoaded_Matrix&quot; \t\t\t\t\tItemTemplate=&quot;{StaticResource Matrix}&quot; \t\t\t\t\tGridCellSize=&quot;20, 20&quot; \t\t\t\t\tLayoutMode=&quot;Grid&quot; \t\t\t\t\tFontSize=&quot;10&quot; \t\t\t\t\tPadding=&quot;10,0,-5,0&quot; Tap=&quot;Event_LongListSelector_Tap_StartMatrix&quot;  \t\t\t\t\tBackground=&quot;{Binding  Path=ItemSourceMatrixBackground, Mode=TwoWay}&quot;                                          \/&gt;             &lt;\/phone:PanoramaItem&gt;              &lt;!--\u0412\u0442\u043e\u0440\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Panorama--&gt;             &lt;phone:PanoramaItem Header=&quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439&quot;&gt;                 &lt;Grid&gt;                     &lt;Grid.RowDefinitions&gt;                         &lt;RowDefinition Height=&quot;30&quot;\/&gt;                         &lt;RowDefinition Height=&quot;60&quot;\/&gt;                         &lt;RowDefinition Height=&quot;*&quot;\/&gt;                     &lt;\/Grid.RowDefinitions&gt;                     &lt;phone:LongListSelector Margin=&quot;0,0,-22,0&quot;  Grid.Row=&quot;2&quot;                                           \t\t\t\t\t    ItemsSource=&quot;{Binding ItemSourceSettingsSymbols}&quot; \t\t\t\t\t    x:Name=&quot;LongListSelector_SettingsSymbols&quot;  \t\t\t\t\t    ItemTemplate=&quot;{StaticResource Resources_SettingsSymbols}&quot;  \/&gt;                     &lt;toolkit:ListPicker                          x:Name=&quot;sightingTypesPicker&quot;                         ExpansionMode=&quot;FullScreenOnly&quot; FullModeHeader=&quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044f\u0437\u044b\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u044b&quot;                         ItemsSource=&quot;{Binding ItemSourceLanguage}&quot;                         FullModeItemTemplate=&quot;{StaticResource ListPickerFullItemTemplate}&quot;                         ItemTemplate=&quot;{StaticResource ListPickerItemTemplate}&quot;                         Grid.Row=&quot;1&quot; HorizontalAlignment=&quot;Left&quot;                                      SelectedItem=&quot;{Binding Path=ItemSourceLanguageSelected, Mode=OneWay}&quot;                         BorderThickness=&quot;0&quot;                         Height=&quot;60&quot; Margin=&quot;0&quot; VerticalAlignment=&quot;Top&quot; Width=&quot;300&quot;                         SelectionChanged=&quot;Event_ListPicker_SelectionChanged&quot;                         \/&gt;                     &lt;TextBlock Grid.Row=&quot;0&quot; Text=&quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u044f\u0437\u044b\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u044b&quot;  \/&gt;                                    &lt;\/Grid&gt;                              &lt;\/phone:PanoramaItem&gt;             &lt;!-- \u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c    --&gt;             &lt;phone:PanoramaItem Header=&quot;\u041e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438&quot;&gt;                 &lt;Grid VerticalAlignment=&quot;Center&quot; HorizontalAlignment=&quot;Center&quot;&gt;                     &lt;Grid.RowDefinitions&gt;                         &lt;RowDefinition Height=&quot;60&quot;\/&gt;                         &lt;RowDefinition Height=&quot;60&quot;\/&gt;                         &lt;RowDefinition Height=&quot;60&quot;\/&gt;                     &lt;\/Grid.RowDefinitions&gt;                     &lt;TextBlock Grid.Row=&quot;0&quot; Text=&quot;SE \u041c\u0430\u0442\u0440\u0438\u0446\u0430 1.0&quot; FontSize=&quot;{StaticResource PhoneFontSizeLarge}&quot;&gt;&lt;\/TextBlock&gt;                     &lt;TextBlock Grid.Row=&quot;1&quot; Text=&quot;se8se@hotmail.com&quot; FontSize=&quot;{StaticResource PhoneFontSizeLarge}&quot;&gt;&lt;\/TextBlock&gt;                     &lt;TextBlock Grid.Row=&quot;2&quot; FontSize=&quot;{StaticResource PhoneFontSizeLarge}&quot;&gt;\u00a9 SE, 2013&lt;\/TextBlock&gt;                 &lt;\/Grid&gt;             &lt;\/phone:PanoramaItem&gt;             &lt;!--\u0422\u0440\u0435\u0442\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 Panorama    --&gt;             &lt;phone:PanoramaItem Header=&quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0446\u0432\u0435\u0442\u0430&quot;&gt;                 &lt;Grid&gt;                     &lt;Grid.RowDefinitions&gt;                         &lt;RowDefinition Height=&quot;400&quot;\/&gt;                         &lt;RowDefinition Height=&quot;20&quot;\/&gt;                         &lt;RowDefinition Height=&quot;*&quot;\/&gt;                     &lt;\/Grid.RowDefinitions&gt;                     &lt;Controls:ColorPicker x:Name=&quot;ColorPicker&quot; Grid.Row=&quot;0&quot; Height=&quot;400&quot; VerticalAlignment=&quot;Top&quot;\/&gt;                     &lt;phone:LongListSelector Margin=&quot;0,0,-22,0&quot; \t\t\t\t\t\tGrid.Row=&quot;2&quot; \t\t\t\t\t\tItemsSource=&quot;{Binding ItemSourceSettingsColors}&quot; \t\t\t\t\t\tx:Name=&quot;LongListSelector_SettingsColor&quot;  \t\t\t\t\t\tItemTemplate=&quot;{StaticResource SettingsColor}&quot; \/&gt;                 &lt;\/Grid&gt;             &lt;\/phone:PanoramaItem&gt;           &lt;\/phone:Panorama&gt;     &lt;\/Grid&gt;  &lt;\/phone:PhoneApplicationPage&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043a\u0430\u043a \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0443\u0445\u0438\u0449\u0440\u0435\u043d\u0438\u0439 \u043d\u0435\u0442\u0443, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 XAML, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u043a\u0430\u043a\u0438\u0435 \u0442\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043f\u043e\u043c\u043e\u0447\u044c.<\/p>\n<h4>\u041f\u0430\u043f\u043e\u0447\u043a\u0430 \u00abViewModels\u00bb<\/h4>\n<p>  \u0414\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0441\u0435\u0440\u0434\u0446\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0422\u043e, \u0440\u0430\u0434\u0438 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u0438 \u0437\u0430\u0442\u0435\u0432\u0430\u043b\u043e\u0441\u044c. \u0418 \u0442\u0430\u043a, \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<ul>\n<li>\u041a\u043b\u0430\u0441\u0441 BaseViewModel \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 INotifyPropertyChanged <br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">BaseViewModel<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace SE_Matrix_2d_v_14.ViewModels {     public class BaseViewModel : INotifyPropertyChanged     {         #region INotifyPropertyChanging Members          public event PropertyChangedEventHandler PropertyChanged;         protected void NotifyPropertyChanged(String propertyName)         {             PropertyChangedEventHandler handler = PropertyChanged;             if (null != handler)             {                 handler(this, new PropertyChangedEventArgs(propertyName));             }         }         #endregion     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/li>\n<li>\u041a\u043b\u0430\u0441\u0441 MainViewModel \u2014 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 BaseViewModel, \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u044b\u0435 <s>\u043e\u0448\u0438\u0431\u043a\u0438<\/s> \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044e, \u0435\u0441\u043b\u0438 \u0412\u044b \u0443\u043a\u0430\u0436\u0435\u0442\u0435 \u043d\u0430 \u043d\u0438\u0445 \u0438 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e <s>\u043b\u0443\u0447\u0448\u0435<\/s> \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0439.<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">MainViewModel<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.DB; using SE_Matrix_2d_v_14.Helpers; using SE_Matrix_2d_v_14.Models; using SE_Matrix_2d_v_14.Resources; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media;   namespace SE_Matrix_2d_v_14.ViewModels {     public class MainViewModel : BaseViewModel     {         private SeDataContext db;          public MainViewModel(string SeDBConnectionString)         {             db = new SeDataContext(SeDBConnectionString);              ItemSourceSettingsSymbols = new ObservableCollection&lt;Model_SettingsSymbols&gt;();             ItemSourceMatrix = new ObservableCollection&lt;Model_Matrixes&gt;();             ItemSourceSettingsColors = new ObservableCollection&lt;Model_Colors&gt;();             ItemSourceLanguage = new ObservableCollection&lt;Module_Languages&gt;();         }                  #region ItemSourceSettingsSymbols         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ItemSourceSettingsSymbols.         \/\/\/ &lt;\/summary&gt;         private ObservableCollection&lt;Model_SettingsSymbols&gt; _itemSourceSettingsSymbols;         public ObservableCollection&lt;Model_SettingsSymbols&gt; ItemSourceSettingsSymbols         {             get { return _itemSourceSettingsSymbols; }             set             {                 _itemSourceSettingsSymbols = value;                 NotifyPropertyChanged(&quot;ItemSourceSettingsSymbols&quot;);             }         }         #endregion          #region ItemSourceSettingsColors         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ItemSourceSettingsColors.         \/\/\/ &lt;\/summary&gt;         private ObservableCollection&lt;Model_Colors&gt; _itemSourceSettingsColors;         public ObservableCollection&lt;Model_Colors&gt; ItemSourceSettingsColors         {             get { return _itemSourceSettingsColors; }             set             {                 _itemSourceSettingsColors = value;                               NotifyPropertyChanged(&quot;ItemSourceSettingsColors&quot;);             }         }         #endregion          #region ItemSourceMatrix         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ItemSourceMatrix.         \/\/\/ &lt;\/summary&gt;         private ObservableCollection&lt;Model_Matrixes&gt; _itemSourceMatrix;         public ObservableCollection&lt;Model_Matrixes&gt; ItemSourceMatrix         {             get { return _itemSourceMatrix; }             set             {                 _itemSourceMatrix = value;                 NotifyPropertyChanged(&quot;ItemSourceMatrix&quot;);             }         }         #endregion          #region ItemSourceMatrixBackground         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ItemSourceMatrixBackground.         \/\/\/ &lt;\/summary&gt;         public SolidColorBrush _itemSourceMatrixBackground;         public SolidColorBrush ItemSourceMatrixBackground {              get{return _itemSourceMatrixBackground;}             set {                 _itemSourceMatrixBackground = value;                 NotifyPropertyChanged(&quot;ItemSourceMatrixBackground&quot;);             }         }         #endregion          #region ItemSourceLanguage         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ItemSourceMatrixBackground.         \/\/\/ &lt;\/summary&gt;         private ObservableCollection&lt;Module_Languages&gt; _itemSourceLanguage;         public ObservableCollection&lt;Module_Languages&gt; ItemSourceLanguage         {             get { return _itemSourceLanguage; }             set             {                 _itemSourceLanguage = value;                 NotifyPropertyChanged(&quot;ItemSourceLanguage&quot;);             }         }         #endregion          #region ItemSourceLanguageSelected         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ItemSourceMatrixBackground.         \/\/\/ &lt;\/summary&gt;         private Module_Languages _itemSourceLanguageSelected;         public Module_Languages ItemSourceLanguageSelected         {             get { return _itemSourceLanguageSelected; }             set             {                 _itemSourceLanguageSelected = value;                 NotifyPropertyChanged(&quot;ItemSourceLanguageSelected&quot;);             }         }         #endregion          \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 \u0411\u0414         \/\/\/ &lt;\/summary&gt;         public void SaveChangesToDB()         {             db.SubmitChanges();         }          public bool IsDataLoaded         {             get;             private set;         }                int coef = 20;         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u0421\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 ViewModel \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.         \/\/\/ &lt;\/summary&gt;         public void LoadData()         {             \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0411\u0414 \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 Model_SettingsSymbols             IQueryable&lt;Model_SettingsSymbols&gt; InDB_SettingsSymbol = (from Model_SettingsSymbols todo in db.DB_SettingsSymbol                                                                     select todo);                                   Param_WindowWidth = InDB_SettingsSymbol.Where(x =&gt; x.Param_Name == &quot;Param_WindowWidth&quot;).FirstOrDefault().Param_Value;             Param_WindowHeight = InDB_SettingsSymbol.Where(x =&gt; x.Param_Name == &quot;Param_WindowHeight&quot;).FirstOrDefault().Param_Value;             rowsNumber = (int)Math.Round(Param_WindowHeight \/ (decimal)coef, MidpointRounding.AwayFromZero);             columnsNumber = (int)Math.Round(Param_WindowWidth \/ (decimal)coef, MidpointRounding.AwayFromZero) - 1;              \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ItemSourceSettingsSymbols, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u0430             _itemSourceSettingsSymbols = new SE_FillOC().FillSettingsSymbols(InDB_SettingsSymbol.Where(x =&gt; x.Param_Name != &quot;Param_WindowWidth&quot; && x.Param_Name != &quot;Param_WindowHeight&quot;));              \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0435\u0442\u043a\u0443, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430             _itemSourceMatrix = new SE_FillOC().FillMatrixes(rowsNumber, columnsNumber);              \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0411\u0414 \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 Model_Colors             IQueryable&lt;Model_Colors&gt; InDB_Colors = (from Model_Colors todo in db.DB_Color                                                     select todo);              \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ItemSourceSettingsColors, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0446\u0432\u0435\u0442\u043e\u0432             _itemSourceSettingsColors = new SE_FillOC().FillColors(InDB_Colors);              \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0411\u0414 \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 Module_Languages             IQueryable&lt;Module_Languages&gt; InDB_Languages = (from Module_Languages todo in db.DB_Language                                                            select todo);              \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ItemSourceLanguage, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u044f\u0437\u044b\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u044b             _itemSourceLanguage = new SE_FillOC().FillLanguages(InDB_Languages);              \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0446\u0432\u0435\u0442\u0444\u043e\u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b             ItemSourceMatrixBackground = SE_Colors.StringToBrush(ItemSourceSettingsColors.Where(x =&gt; x.Name == &quot;Param_Color_Background&quot;).SingleOrDefault().Value);              \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044f\u0437\u044b\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438\u0437 \u0411\u0414             ItemSourceLanguageSelected = ItemSourceLanguage.Where(z =&gt; z.Selected == true).SingleOrDefault();             LanguageFrom = ItemSourceLanguage.Where(z =&gt; z.Selected == true).SingleOrDefault().ValueFrom;             LanguageTo   = ItemSourceLanguage.Where(z =&gt; z.Selected == true).SingleOrDefault().ValueTo;             this.IsDataLoaded = true;         }          #region UpdateSettingsSymbolsByID         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b Model_SettingsSymbols \u0432 \u0411\u0414 \u043f\u043e ID         \/\/\/ &lt;\/summary&gt;         public void UpdateSettingsSymbolsByID(Model_SettingsSymbols SettingsSymbolsForDelete)         {             var query = (from Model_SettingsSymbols todo in db.DB_SettingsSymbol                          where todo.ID == SettingsSymbolsForDelete.ID                          select todo).First();              query.Param_Value = SettingsSymbolsForDelete.Param_Value;              db.SubmitChanges();              ItemSourceSettingsSymbols.Where(v =&gt; v.ID == SettingsSymbolsForDelete.ID).SingleOrDefault().Param_Value = SettingsSymbolsForDelete.Param_Value;         }         #endregion          #region UpdateSettingsSymbolsByName         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b Model_SettingsSymbols \u0432 \u0411\u0414 \u043f\u043e \u0438\u043c\u0435\u043d\u0438         \/\/\/ &lt;\/summary&gt;         public void UpdateSettingsSymbolsByName(Model_SettingsSymbols SettingsSymbolsForDelete)         {             var query = (from Model_SettingsSymbols todo in db.DB_SettingsSymbol                          where todo.Param_Name == SettingsSymbolsForDelete.Param_Name                          select todo).SingleOrDefault();              query.Param_Value = SettingsSymbolsForDelete.Param_Value;              db.SubmitChanges();         }         #endregion          #region UpdateSettingsColorByID         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b Model_Colors \u0432 \u0411\u0414 \u043f\u043e ID         \/\/\/ &lt;\/summary&gt;         public void UpdateSettingsColorByID(Model_Colors SettingsSymbolsForDelete)         {             var query = (from Model_Colors todo in db.DB_Color                          where todo.ID == SettingsSymbolsForDelete.ID                          select todo).First();              query.Value = SettingsSymbolsForDelete.Value;              db.SubmitChanges();              ItemSourceSettingsColors.Where(v =&gt; v.ID == SettingsSymbolsForDelete.ID).SingleOrDefault().Value = SettingsSymbolsForDelete.Value;              \/\/ \u041f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0444\u043e\u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0432\u0437\u0430\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e Background \u0432\u043e View             ItemSourceMatrixBackground = SE_Colors.StringToBrush(ItemSourceSettingsColors.Where(x =&gt; x.Name == &quot;Param_Color_Background&quot;).SingleOrDefault().Value);         }         #endregion          #region UpdateSelectedLanguageByID         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b Module_Languages \u0432 \u0411\u0414 \u043f\u043e ID         \/\/\/ &lt;\/summary&gt;         public void UpdateSettingsColorByID(Module_Languages forUpdate)         {             var query = (from Module_Languages todo in db.DB_Language                          where todo.Selected == true                          select todo).SingleOrDefault();              query.Selected = false;              db.SubmitChanges();              var query1 = (from Module_Languages todo in db.DB_Language                           where todo.ID == forUpdate.ID                          select todo).SingleOrDefault();              query1.Selected = true;              db.SubmitChanges();              \/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u044f\u0437\u044b\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438\u0437 \u0411\u0414             ItemSourceLanguage.Where(c =&gt; c.Selected == true).SingleOrDefault().Selected = false;             ItemSourceLanguage.Where(c =&gt; c.ID == forUpdate.ID).SingleOrDefault().Selected = true;             ItemSourceLanguageSelected = ItemSourceLanguage.Where(z =&gt; z.Selected == true).SingleOrDefault();             LanguageFrom               = ItemSourceLanguage.Where(z =&gt; z.Selected == true).SingleOrDefault().ValueFrom;             LanguageTo                 = ItemSourceLanguage.Where(z =&gt; z.Selected == true).SingleOrDefault().ValueTo;         }         #endregion          #region Class params         public SolidColorBrush TheColorOfFirstSymbol { get; set; }         public SolidColorBrush TheColorOfBackground { get; set; }         public SolidColorBrush TheColorOfGradientFromBrush { get; set; }         public SolidColorBrush TheColorOfGradientToBrush { get; set; }         public Dictionary&lt;string, int&gt; TheColorOfGradientFromDictionary { get; set; }         public Dictionary&lt;string, int&gt; TheColorOfGradientToDictionary { get; set; }         int Param_Iteration { get; set; }         int Param_MinLength { get; set; }         int Param_MaxLength { get; set; }         int Param_SpeedTo { get; set; }         int rowsNumber { get; set; }         int columnsNumber { get; set; }         int Param_WindowWidth { get; set; }         int Param_WindowHeight { get; set; }         int Param_FontSize { get; set; }         int LanguageFrom { get; set; }         int LanguageTo { get; set; }         Random random = new Random();         SE_Colors SE_Colors = new SE_Colors();         #endregion          \/\/\/ &lt;summary&gt;         \/\/\/ \u041d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0439 \u0437\u043c\u0435\u0439\u043a\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e         \/\/\/ &lt;\/summary&gt;         public void Start()         {                       for (int i = 0; i &lt; ItemSourceSettingsSymbols.Where(v =&gt; v.Param_Name == &quot;Param_CountSimultaneously&quot;).SingleOrDefault().Param_Value; i++ )             {                  MoveMatrix();             }                   }          \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. Matrix. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u041c\u0430\u0442\u0440\u0438\u0446\u0443. \u0417\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0430\u043c\u0430\u0442\u0440\u044b         \/\/\/ \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u0437\u043c\u0435\u0439\u043a\u0438         \/\/\/ &lt;\/summary&gt;         public async Task MoveMatrix()         {             Param_Iteration = ItemSourceSettingsSymbols.Where(v =&gt; v.Param_Name == &quot;Param_Iteration&quot;).SingleOrDefault().Param_Value;             Param_MinLength = ItemSourceSettingsSymbols.Where(v =&gt; v.Param_Name == &quot;Param_MinLength&quot;).SingleOrDefault().Param_Value;             Param_MaxLength = ItemSourceSettingsSymbols.Where(v =&gt; v.Param_Name == &quot;Param_MaxLength&quot;).SingleOrDefault().Param_Value;             Param_SpeedTo   = ItemSourceSettingsSymbols.Where(v =&gt; v.Param_Name == &quot;Param_SpeedTo&quot;).SingleOrDefault().Param_Value;             Param_FontSize  = ItemSourceSettingsSymbols.Where(v =&gt; v.Param_Name == &quot;Param_FontSize&quot;).SingleOrDefault().Param_Value;              TheColorOfFirstSymbol            =  SE_Colors.StringToBrush(ItemSourceSettingsColors.Where(z =&gt; z.Name == &quot;Param_Color_FirstSymbol&quot;).SingleOrDefault().Value);             TheColorOfBackground             =  SE_Colors.StringToBrush(ItemSourceSettingsColors.Where(x1 =&gt; x1.Name == &quot;Param_Color_Background&quot;).SingleOrDefault().Value);             TheColorOfGradientFromBrush      =  SE_Colors.StringToBrush(ItemSourceSettingsColors.Where(x2 =&gt; x2.Name == &quot;Param_Color_GradientFrom&quot;).SingleOrDefault().Value);             TheColorOfGradientToBrush        =  SE_Colors.StringToBrush(ItemSourceSettingsColors.Where(x3 =&gt; x3.Name == &quot;Param_Color_GradientTo&quot;).SingleOrDefault().Value);             TheColorOfGradientFromDictionary =  SE_Colors.StringToDictionary(ItemSourceSettingsColors.Where(x4 =&gt; x4.Name == &quot;Param_Color_GradientFrom&quot;).SingleOrDefault().Value);             TheColorOfGradientToDictionary   =  SE_Colors.StringToDictionary(ItemSourceSettingsColors.Where(x5 =&gt; x5.Name == &quot;Param_Color_GradientTo&quot;).SingleOrDefault().Value);              for (int i = 0; i &lt; Param_Iteration; i++)             {                 \/\/ \u041d\u0430\u0447\u0430\u043b\u043e \u0437\u043c\u0435\u0439\u043a\u0438 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c                 int ranX = random.Next(0, columnsNumber);                  \/\/ \u041d\u0430\u0447\u0430\u043b\u043e \u0437\u043c\u0435\u0439\u043a\u0438 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c                 int ranY = random.Next( -Param_MaxLength , rowsNumber);                  \/\/ \u0414\u043b\u0438\u043d\u0430 \u0437\u043c\u0435\u0439\u043a\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c                 int length = random.Next(Param_MinLength, Param_MaxLength);                  \/\/ \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u043c\u0435\u043d\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0437\u043c\u0435\u0439\u043a\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c                 int time = random.Next(5, Param_SpeedTo);                                \/\/\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u043c\u0435\u0439\u043a\u0438                 await MoveMatrixElements(ranX, ranY, length, time);             }         }          \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. Matrix. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0430\u043a\u0438\u0435 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0441 \u043a\u0430\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;x&quot;&gt;\u041d\u0430\u0447\u0430\u043b\u043e \u0437\u043c\u0435\u0439\u043a\u0438 \u043f\u043e \u043e\u0441\u0438 \u0445&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;y&quot;&gt;\u041d\u0430\u0447\u0430\u043b\u043e \u0437\u043c\u0435\u0439\u043a\u0438 \u043f\u043e \u043e\u0441\u0438 \u0443&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;length&quot;&gt;\u0414\u043b\u0438\u043d\u0430 \u0437\u0432\u0435\u0439\u043a\u0438&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;time&quot;&gt;\u0412\u0440\u0435\u043c\u044f \u043c\u0435\u0436\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043a \u0437\u043c\u0435\u0439\u043a\u0435&lt;\/param&gt;         public async Task MoveMatrixElements(int x, int y, int length, int time)         {             \/\/ \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u044f\u0447\u0435\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435.             Dictionary&lt;int, Model_Matrixes&gt; dicElem = new Dictionary&lt;int, Model_Matrixes&gt;();              int count = 0;             int fail = 0;              for (int i = 0; i &lt; length; i++)             {                 if ((y + i) &lt; rowsNumber && (y + i) &gt;= 0)                 {                     string elementNameToMove = x + &quot;_&quot; + (y + i);                     Model_Matrixes elementToMove = ItemSourceMatrix.Where(xx =&gt; xx.Matrix_Name == elementNameToMove).SingleOrDefault();                     dicElem[count] = (elementToMove);                      await MatrixElementsChange(elementToMove, time, TheColorOfFirstSymbol);                      \/\/ \u041f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435  \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0437\u043c\u0435\u0439\u043a\u0443 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435. \u0421 \u043a\u0430\u0436\u0434\u044b\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u043e\u043d\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 \u043d\u0443\u0436\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b.                     for (int k = 0; k &lt;= count; k++)                     {                         \/\/\u0418\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0437\u0430 \u0441\u0430\u043c\u044b\u043c \u044f\u0440\u043a\u0438\u043c. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442 &quot;\u0437\u0430\u0442\u0443\u0445\u0430\u043d\u0438\u044f&quot; \u0446\u0432\u0435\u0442\u0430                         Model_Matrixes previousElement = dicElem[k];                          Dictionary&lt;string, int&gt; coefficientFromGradient = new SE_Colors().Get\u0421oefficientFromGradient(TheColorOfGradientFromDictionary, TheColorOfGradientToDictionary, count);                         SolidColorBrush colorSymbol = SE_Colors.GetSymbolColorForGradient(TheColorOfGradientFromDictionary, coefficientFromGradient, (i - fail - k));                          Task dsvv = MatrixElementsChange(previousElement, time, colorSymbol);                     }                     count++;                 }                 else                 {                     \/\/ \u0427\u0442\u043e \u0431 \u0441\u0432\u0435\u0440\u0445\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u043f\u0430\u0434\u0430\u043b\u0430.                     fail++;                 }             }         }          \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. Matrix. \u0417\u0430\u0434\u0430\u0435\u0442 \u0446\u0432\u0435\u0442, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043c\u0435\u043d\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0437\u0430\u0442\u0443\u0445\u0430\u043d\u0438\u0435         \/\/\/ \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u044b         \/\/\/ \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;element&quot;&gt;\u041e\u0431\u044a\u0435\u043a\u0442 \u0442\u0438\u043f\u0430 Model_Matrixes&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;timeOut&quot;&gt;\u0412\u0440\u0435\u043c\u044f, \u0441\u0444\u043e\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445,         \/\/\/ \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;NewColor&quot;&gt;\u0426\u0432\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u0430&lt;\/param&gt;         public async Task MatrixElementsChange(Model_Matrixes element, int timeOut, SolidColorBrush NewColor)         {             element.Matrix_Text = RandomActualSymbol();             element.Matrix_Foreground = NewColor;             element.Matrix_FontSize = Param_FontSize;             await Task.Delay(timeOut);         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u0435\u0441\u0442\u0438&lt;\/returns&gt;         public string RandomActualSymbol()         {             \/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0444\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0432 \u0437\u0430\u0434\u0430\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435             return char.ConvertFromUtf32(this.random.Next((int)LanguageFrom, (int)LanguageTo));         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u043e\u0434 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f:  <\/p>\n<pre><code class=\"cs\">            ItemSourceSettingsSymbols = new ObservableCollection&lt;Model_SettingsSymbols&gt;();             ItemSourceMatrix = new ObservableCollection&lt;Model_Matrixes&gt;();             ItemSourceSettingsColors = new ObservableCollection&lt;Model_Colors&gt;();             ItemSourceLanguage = new ObservableCollection&lt;Module_Languages&gt;(); <\/code><\/pre>\n<p>  \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e UI (XAML). <br \/>  \u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u0442\u0438\u043b\u0435 LINQ:  <\/p>\n<pre><code class=\"cs\">Param_WindowWidth = InDB_SettingsSymbol.Where(x =&gt; x.Param_Name == &quot;Param_WindowWidth&quot;).FirstOrDefault().Param_Value; <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u00abSE_Colors\u00bb \u0438 \u00abSE_FillOC\u00bb. \u041e\u043d\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043e\u0447\u043a\u0435 \u00abHelpers\u00bb, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0443\u043d\u043a\u0442\u0435.<\/p>\n<p>  \u0425\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u0434\u043d\u0443 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u043e\u0431\u043e\u0439\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u043d\u0430\u0447\u0435 \u044f \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u043a\u0430\u043a. \u0421\u0432\u044f\u0437\u0430\u043d\u0430 \u043e\u043d\u0430 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u043e\u043a\u043d\u0430 LongListSelector, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u043f\u0430\u0434\u0430\u0435\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0442\u043e \u0431 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 \u044d\u0442\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 LayoutMode=\u00abGrid\u00bb \u0438 GridCellSize=\u00ab20, 20\u00bb. \u041a GridCellSize \u0437\u0430\u0431\u0438\u043d\u0434\u0438\u0442\u044c\u0441\u044f \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.\u0422\u043e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043b\u0435\u0442\u043e\u0447\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u041d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u0442\u0443 \u0438 \u0448\u0438\u0440\u0438\u043d\u0443 \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0430 ViewModel \u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 UI. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0430 \u0433\u0430\u0434\u0436\u0435\u0442\u044b, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0440\u0430\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043e\u0442 800*480 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c\u0441\u044f \u00ab\u0443\u0440\u0435\u0437\u043e\u043d\u043e\u0441\u0442\u044c\u00bb \u0441\u0435\u0442\u043a\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432\u043d\u0438\u0437\u0443. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u0442\u044b \u0438 \u0448\u0438\u0440\u0438\u043d\u044b \u0438\u0437 \u0411\u0414 \u0438 \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e \u0442\u043e \u0437\u043d\u0430\u0435\u0442 \u043a\u0430\u043a \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c (\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0432 \u0411\u0414 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0438 \u0438\u0441\u0445\u043e\u0434\u044f \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\u0430 \u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439) \u2014 \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u0441\u043b\u0443\u0448\u0430\u044e. <br \/>  \u041d\u0443 \u0430 \u0432 \u043a\u043e\u0434\u0435 \u044d\u0442\u043e\u0442 \u043a\u0443\u0441\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cs\">        #region UpdateSettingsSymbolsByName         \/\/\/ &lt;summary&gt;         \/\/\/ ViewModel. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b Model_SettingsSymbols \u0432 \u0411\u0414 \u043f\u043e \u0438\u043c\u0435\u043d\u0438         \/\/\/ &lt;\/summary&gt;         public void UpdateSettingsSymbolsByName(Model_SettingsSymbols SettingsSymbolsForDelete)         {             var query = (from Model_SettingsSymbols todo in db.DB_SettingsSymbol                          where todo.Param_Name == SettingsSymbolsForDelete.Param_Name                          select todo).SingleOrDefault();              query.Param_Value = SettingsSymbolsForDelete.Param_Value;              db.SubmitChanges();         }         #endregion <\/code><\/pre>\n<p>  \u0418 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u043a\u043d\u0430 \u0432 MainPage.xaml.cs.  <\/li>\n<\/ul>\n<h4>\u041f\u0430\u043f\u043e\u0447\u043a\u0430 \u00abHelpers\u00bb<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u041a\u043b\u0430\u0441\u0441 SE_Colors \u2014 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a, \u043a\u043e\u0432\u0435\u0440\u0442\u0435\u0440\u044b \u0446\u0432\u0435\u0442\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0431 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0411\u0414 \u0446\u0432\u0435\u0442 \u2014 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c string, \u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 ViewModel \u2014 SolidColorBrush, \u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0435\u0442\u0430 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c\u044b\u0439 \u0442\u0438\u043f\/\u0441\u043f\u0438\u0441\u043e\u043a\/\u0442\u0434., \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e Dictionary. \u041c\u043e\u0436\u0435\u0442 \u043a\u043e\u043c\u0443 \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c. \u0421\u043c\u043e\u0442\u0440\u0438\u043c:<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">SE_Colors<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media;  namespace SE_Matrix_2d_v_14.Helpers {     public class SE_Colors     {         \/\/\/ &lt;summary&gt;         \/\/\/ \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0446\u0432\u0435\u0442 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 &quot;#FF112233&quot; \u0432 SolidColorBrush,         \/\/\/ \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441 \u0437\u0430\u0434\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0410 (8-9 \u0437\u043d\u0430\u043a\u043e\u0432) \u0442\u0430\u043a \u0438 \u0431\u0435\u0437 (6-7 \u0437\u043d\u0430\u043a\u043e\u0432)         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;color&quot;&gt;\u0426\u0432\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0430 (&quot;#FF112233&quot;)&lt;\/param&gt;         \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043a\u0442 SolidColorBrush&lt;\/returns&gt;         public SolidColorBrush StringToBrush(string color)         {             color = color.Replace(&quot;#&quot;, &quot;&quot;);                          switch(color.Length)             {                case 8 :                       return new SolidColorBrush(Color.FromArgb(                         byte.Parse(color.Substring(0, 2), System.Globalization.NumberStyles.HexNumber),                         byte.Parse(color.Substring(2, 2), System.Globalization.NumberStyles.HexNumber),                         byte.Parse(color.Substring(4, 2), System.Globalization.NumberStyles.HexNumber),                         byte.Parse(color.Substring(6, 2), System.Globalization.NumberStyles.HexNumber) ));                case 6:                    return new SolidColorBrush(Color.FromArgb(                       255,                       byte.Parse(color.Substring(0, 2), System.Globalization.NumberStyles.HexNumber),                       byte.Parse(color.Substring(2, 2), System.Globalization.NumberStyles.HexNumber),                       byte.Parse(color.Substring(4, 2), System.Globalization.NumberStyles.HexNumber) ));               default: return null;             }         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0446\u0432\u0435\u0442 \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 SolidColorBrush \u0432 ARGB \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e \u0432 Dictionary         \/\/\/ \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;color&quot;&gt;\u0426\u0432\u0435\u0442, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043a\u0442 SolidColorBrush&lt;\/param&gt;         \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0432\u0435\u0442, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 Dictionary&lt;\/returns&gt;         public Dictionary&lt;string, int&gt; BrushToDictionary(SolidColorBrush color)         {             Dictionary&lt;string, int&gt; colorArgb = new Dictionary&lt;string, int&gt;();              colorArgb[&quot;A&quot;] = color.Color.A;             colorArgb[&quot;R&quot;] = color.Color.R;             colorArgb[&quot;G&quot;] = color.Color.G;             colorArgb[&quot;B&quot;] = color.Color.B;              return colorArgb;         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0446\u0432\u0435\u0442 \u0438\u0437 Dictionary \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 SolidColorBrush         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;toBrush&quot;&gt;\u0426\u0432\u0435\u0442, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u0441\u044f \u0432 Dictionary \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB&lt;\/param&gt;         \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0446\u0432\u0435\u0442 \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043a\u0442 SolidColorBrush&lt;\/returns&gt;         public SolidColorBrush DictionaryToBrush(Dictionary&lt;string, int&gt; toBrush)         {             return new SolidColorBrush(new Color()             {                 A = (byte)toBrush[&quot;A&quot;],                 R = (byte)toBrush[&quot;R&quot;],                 G = (byte)toBrush[&quot;G&quot;],                 B = (byte)toBrush[&quot;B&quot;]             });         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0446\u0432\u0435\u0442, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 &quot;#FF112233&quot; \u0432 Dictionary \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB         \/\/\/ \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441 \u0437\u0430\u0434\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0410 (8-9 \u0437\u043d\u0430\u043a\u043e\u0432) \u0442\u0430\u043a \u0438 \u0431\u0435\u0437 (6-7 \u0437\u043d\u0430\u043a\u043e\u0432)         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;toDictionary&quot;&gt;\u0426\u0432\u0435\u0442 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0430 &quot;#FF112233&quot;&lt;\/param&gt;         \/\/\/ &lt;returns&gt;\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Dictionary \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB&lt;\/returns&gt;         public Dictionary&lt;string, int&gt; StringToDictionary(string toDictionary)         {             toDictionary = toDictionary.Replace(&quot;#&quot;, &quot;&quot;);             Dictionary&lt;string, int&gt; colorArgb = new Dictionary&lt;string, int&gt;();              switch (toDictionary.Length)             {                 case 8:                     colorArgb[&quot;A&quot;] = byte.Parse(toDictionary.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);                     colorArgb[&quot;R&quot;] = byte.Parse(toDictionary.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);                     colorArgb[&quot;G&quot;] = byte.Parse(toDictionary.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);                     colorArgb[&quot;B&quot;] = byte.Parse(toDictionary.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);                     break;                 case 6:                     colorArgb[&quot;A&quot;] = 255;                     colorArgb[&quot;R&quot;] = byte.Parse(toDictionary.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);                     colorArgb[&quot;G&quot;] = byte.Parse(toDictionary.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);                     colorArgb[&quot;B&quot;] = byte.Parse(toDictionary.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);                     break;                 default:                     colorArgb[&quot;A&quot;] = 255;                     colorArgb[&quot;R&quot;] = 255;                     colorArgb[&quot;G&quot;] = 255;                     colorArgb[&quot;B&quot;] = 255;                     break;             }              return colorArgb;         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430 \u0438\u0437         \/\/\/ \u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;gradientFrom&quot;&gt;Dictionary \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB. \u0426\u0432\u0435\u0442 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;gradientTo&quot;&gt;Dictionary \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB. \u0426\u0432\u0435\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0446\u0430 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0438\u043c\u043e\u043b&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;count&quot;&gt;&lt;\/param&gt;         \/\/\/ &lt;returns&gt;Dictionary \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430&lt;\/returns&gt;         public Dictionary&lt;string, int&gt; Get\u0421oefficientFromGradient(Dictionary&lt;string, int&gt; gradientFrom, Dictionary&lt;string, int&gt; gradientTo, int count)         {             Dictionary&lt;string, int&gt; coefficientArgb = new Dictionary&lt;string, int&gt;();              coefficientArgb[&quot;A&quot;] = (int)Math.Round((gradientFrom[&quot;A&quot;] - 10) \/ (double)(count + 1)) - 1;             coefficientArgb[&quot;R&quot;] = (int)Math.Round((gradientFrom[&quot;R&quot;] - gradientTo[&quot;R&quot;]) \/ (double)(count + 1)) - 1;             coefficientArgb[&quot;G&quot;] = (int)Math.Round((gradientFrom[&quot;G&quot;] - gradientTo[&quot;G&quot;]) \/ (double)(count + 1)) - 1;             coefficientArgb[&quot;B&quot;] = (int)Math.Round((gradientFrom[&quot;B&quot;] - gradientTo[&quot;B&quot;]) \/ (double)(count + 1)) - 1;               return coefficientArgb;         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0446\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u0432\u043f\u043e\u043b\u0430 \u0432 \u0437\u043c\u0435\u0439\u043a\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;gradientFrom&quot;&gt;Dictionary \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB. \u0426\u0432\u0435\u0442 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u0430, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;coefficientFromGradient&quot;&gt;Dictionary \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438 ARGB. \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0446\u0432\u0435\u0442\u0430&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;coefficient&quot;&gt;\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442, \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0438\u043c\u0432\u043e\u0430 \u0432 \u0437\u043c\u0435\u0439\u043a\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b&lt;\/param&gt;         \/\/\/ &lt;returns&gt;\u0426\u0432\u0435\u0442, \u043a\u0430\u043a \u043e\u0431\u044a\u0435\u043a\u0442 SolidColorBrush&lt;\/returns&gt;         public SolidColorBrush GetSymbolColorForGradient(Dictionary&lt;string, int&gt; gradientFrom, Dictionary&lt;string, int&gt; coefficientFromGradient, int coefficient)         {             Dictionary&lt;string, int&gt; symbolColorForGradient = new Dictionary&lt;string, int&gt;();              symbolColorForGradient[&quot;A&quot;] = (gradientFrom[&quot;A&quot;] - (coefficient * coefficientFromGradient[&quot;A&quot;]));             symbolColorForGradient[&quot;R&quot;] = (gradientFrom[&quot;R&quot;] - (coefficient * coefficientFromGradient[&quot;R&quot;]));             symbolColorForGradient[&quot;G&quot;] = (gradientFrom[&quot;G&quot;] - (coefficient * coefficientFromGradient[&quot;G&quot;]));             symbolColorForGradient[&quot;B&quot;] = (gradientFrom[&quot;B&quot;] - (coefficient * coefficientFromGradient[&quot;B&quot;]));              return DictionaryToBrush(symbolColorForGradient);         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/li>\n<li>\u041a\u043b\u0430\u0441\u0441 SE_FillOC \u2014 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 Fill Observable Collection. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0411\u0414, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438\u0445 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u044b ViewModel. \u041d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e ObservableCollection \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u0443:<br \/> \n<div class=\"spoiler\"><b class=\"spoiler_title\">SE_FillOC<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using SE_Matrix_2d_v_14.Models; using SE_Matrix_2d_v_14.Resources; using SE_Matrix_2d_v_14.ViewModels; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media;  namespace SE_Matrix_2d_v_14.Helpers {     public class SE_FillOC     {         \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ObservableCollection         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;model&quot;&gt;\u0412\u044b\u0442\u044f\u0436\u043a\u0430 \u0438\u0437 \u0411\u0414 \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&lt;\/param&gt;         \/\/\/ &lt;returns&gt;ObservableCollection&lt;\/returns&gt;         public ObservableCollection&lt;Model_SettingsSymbols&gt; FillSettingsSymbols(IQueryable&lt;Model_SettingsSymbols&gt; model)         {             ObservableCollection&lt;Model_SettingsSymbols&gt; _itemObservableCollection = new ObservableCollection&lt;Model_SettingsSymbols&gt;();             foreach(var toFill in model)             {                 _itemObservableCollection.Add(                   new Model_SettingsSymbols {                       ID = toFill.ID,                       Param_Name = toFill.Param_Name,                       Param_Value = toFill.Param_Value,                       NameForTranslate = AppResources.ResourceManager.GetString(toFill.Param_Name, AppResources.Culture),                   });             }             return _itemObservableCollection;         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ObservableCollection Model_Matrixes         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;rowsNumber&quot;&gt;\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435&lt;\/param&gt;         \/\/\/ &lt;param name=&quot;columnsNumber&quot;&gt;\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435&lt;\/param&gt;         \/\/\/ &lt;returns&gt;ObservableCollection&lt;\/returns&gt;         public ObservableCollection&lt;Model_Matrixes&gt; FillMatrixes(int rowsNumber, int columnsNumber)         {             ObservableCollection&lt;Model_Matrixes&gt; _itemObservableCollection = new ObservableCollection&lt;Model_Matrixes&gt;();                         for (int rows = 0; rows &lt; rowsNumber; rows++)             {                 for (int columns = 0; columns &lt; columnsNumber; columns++)                 {                     _itemObservableCollection.Add(new Model_Matrixes()                     {                         Matrix_Name = columns + &quot;_&quot; + rows,                         Matrix_Text = &quot;&quot;,                         Matrix_FontSize = 15,                         Matrix_Foreground = new SolidColorBrush(Colors.Cyan)                     });                 }             }             return _itemObservableCollection;         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ObservableCollection         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;model&quot;&gt;\u0412\u044b\u0442\u044f\u0436\u043a\u0430 \u0438\u0437 \u0411\u0414 \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&lt;\/param&gt;         \/\/\/ &lt;returns&gt;ObservableCollection&lt;\/returns&gt;         public ObservableCollection&lt;Model_Colors&gt; FillColors(IQueryable&lt;Model_Colors&gt; model)         {             ObservableCollection&lt;Model_Colors&gt; _itemObservableCollection = new ObservableCollection&lt;Model_Colors&gt;();              foreach (var toFill in model)             {                 _itemObservableCollection.Add(                   new Model_Colors                   {                       ID = toFill.ID,                       Name = toFill.Name,                       Value = toFill.Value,                       NameForTranslate = AppResources.ResourceManager.GetString(toFill.Name, AppResources.Culture),                   });             }             return _itemObservableCollection;         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c ObservableCollection         \/\/\/ &lt;\/summary&gt;         \/\/\/ &lt;param name=&quot;model&quot;&gt;\u0412\u044b\u0442\u044f\u0436\u043a\u0430 \u0438\u0437 \u0411\u0414 \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&lt;\/param&gt;         \/\/\/ &lt;returns&gt;ObservableCollection&lt;\/returns&gt;         public ObservableCollection&lt;Module_Languages&gt; FillLanguages(IQueryable&lt;Module_Languages&gt; model)         {             ObservableCollection&lt;Module_Languages&gt; _itemObservableCollection = new ObservableCollection&lt;Module_Languages&gt;();              foreach (var toFill in model)             {                 _itemObservableCollection.Add(                   new Module_Languages                   {                       ID = toFill.ID,                       Name = toFill.Name,                       ValueFrom = toFill.ValueFrom,                       ValueTo = toFill.ValueTo,                       NameForTranslate = AppResources.ResourceManager.GetString(toFill.Name, AppResources.Culture),                       Selected = toFill.Selected                   });             }             return _itemObservableCollection;         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/li>\n<\/ul>\n<p>  <\/p>\n<h4>MainPage.xaml.cs<\/h4>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u0442\u0435\u0440\u0438 \u0444\u043e\u043a\u0443\u0441\u0430.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">MainPage.xaml.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">using System; using System.Net; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Navigation; using Microsoft.Phone.Controls; using Microsoft.Phone.Shell; using SE_Matrix_2d_v_14.Models; using System.Windows.Shapes; using System.Diagnostics; using System.Reflection; using System.Windows.Media;  namespace SE_Matrix_2d_v_14 {     public partial class MainPage : PhoneApplicationPage     {         \/\/ \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440         public MainPage()         {             InitializeComponent();              \/\/ \u0417\u0430\u0434\u0430\u0439\u0442\u0435 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f listbox \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445             this.DataContext = App.ViewModel;         }          \/\/ \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 ViewModel         protected override void OnNavigatedTo(NavigationEventArgs e)         {             if (!App.ViewModel.IsDataLoaded)             {                 App.ViewModel.LoadData();             }             App.ViewModel.SaveChangesToDB();         }           private bool _updateSettings = false;         public bool UpdateSettings         {             get { return _updateSettings; }             set { _updateSettings = value; }         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0415\u0441\u043b\u0438 \u0442\u0435\u043a\u0441\u0442 \u0432 \u043f\u043e\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0438 \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 0, \u0442\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0444\u043b\u0430\u0433 \u043d\u0430 true, \u0447\u0442\u043e         \/\/\/ \u043f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043f\u043e\u0442\u0435\u0440\u0438 \u0444\u043e\u043a\u0443\u0441\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0411\u0414         \/\/\/ &lt;\/summary&gt;         private void Event_TextBox_TextChanged_SettingSymbols(object sender, TextChangedEventArgs e)         {             TextBox paramToUpdate = sender as TextBox;              if (paramToUpdate.Text.Length &gt; 0)             {                 UpdateSettings = true;             }         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u0415\u0441\u043b\u0438 UpdateSettings == true, \u0442\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0411\u0414 \u043d\u0430 \u0442\u0435, \u0447\u0442\u043e \u0432\u0432\u0435\u043b\u0438         \/\/\/ &lt;\/summary&gt;         private void Event_TextBox_LostFocus_SettingsSymbols(object sender, RoutedEventArgs e)         {             TextBox paramToUpdate = sender as TextBox;              if (UpdateSettings == true)             {                 UpdateSettings = false;                 Model_SettingsSymbols updateInTable = new Model_SettingsSymbols                 {                     ID = Convert.ToInt32(paramToUpdate.Tag),                     Param_Value = Convert.ToInt32(paramToUpdate.Text)                 };                 App.ViewModel.UpdateSettingsSymbolsByID(updateInTable);                            }         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043f\u043e\u043b\u044f, \u0433\u0434\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430         \/\/\/ &lt;\/summary&gt;         private void Event_LongListSelector_OnLoaded_Matrix(object sender, RoutedEventArgs e)         {             LongListSelector paramToUpdate = sender as LongListSelector;              Model_SettingsSymbols updateHeightInTable = new Model_SettingsSymbols             {                 Param_Name = &quot;Param_WindowHeight&quot;,                 Param_Value = Convert.ToInt32(paramToUpdate.ActualHeight)             };             App.ViewModel.UpdateSettingsSymbolsByName(updateHeightInTable);              Model_SettingsSymbols updateWigthInTable = new Model_SettingsSymbols             {                 Param_Name = &quot;Param_WindowWidth&quot;,                 Param_Value = Convert.ToInt32(paramToUpdate.ActualWidth)             };             App.ViewModel.UpdateSettingsSymbolsByName(updateWigthInTable);         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u043d\u0435\u0435 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043d\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043c\u0435\u0435\u043a.         \/\/\/ &lt;\/summary&gt;         private async void Event_LongListSelector_Tap_StartMatrix(object sender, System.Windows.Input.GestureEventArgs e)         {              App.ViewModel.Start();         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u0446\u0432\u0435\u0442\u0430 \u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a - \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0446\u0432\u0435\u0442 \u0432 \u0411\u0414 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c         \/\/\/ &lt;\/summary&gt;         private void Event_Rectangle_Tap_ChangeColor(object sender, System.Windows.Input.GestureEventArgs e)         {             Rectangle paramToUpdate = sender as Rectangle;              Model_Colors updateInTable = new Model_Colors             {                 ID = Convert.ToInt32(paramToUpdate.Tag),                 Value = ColorPicker.Color.ToString()             };             App.ViewModel.UpdateSettingsColorByID(updateInTable);         }          \/\/\/ &lt;summary&gt;         \/\/\/ \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u044f\u0437\u044b\u043a\u0430 \u043c\u0435\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0411\u0414         \/\/\/ &lt;\/summary&gt;         private void Event_ListPicker_SelectionChanged(object sender, SelectionChangedEventArgs e)         {             Module_Languages selectedItem = ((sender as ListPicker).SelectedItem as Module_Languages);              Module_Languages updateInTable = new Module_Languages             {                 ID = selectedItem.ID             };             App.ViewModel.UpdateSettingsColorByID(updateInTable);         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0412\u044b\u0432\u043e\u0434\u044b<\/h4>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u043e\u0441\u044c, \u043e\u0434\u043d\u0430\u043a\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0430\u0441\u044c \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c. MVVM \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u0435\u043d \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043b \u0432 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043c\u0435\u0435\u043a \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u0442 \u043f\u0440\u0438\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0439) \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043d\u0438\u0437\u0438\u043b\u0430\u0441\u044c. <\/p>\n<p>  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0435\u043b\u043a\u0438\u0435 \u0431\u0430\u0433\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u0441\u044c \u044d\u043a\u0440\u0430\u043d \u043f\u0440\u0438 \u0434\u0432\u043e\u0439\u043d\u043e\u043c \u043d\u0430\u0436\u0430\u0442\u0438\u0438, \u043d\u0430\u0447\u043d\u0435\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Xamarin: Android \u0438 IOS.    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/201240\/\"> http:\/\/habrahabr.ru\/post\/201240\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0418 \u0442\u0430\u043a, \u043a\u0430\u043a \u0438 \u043e\u0431\u0435\u0449\u0430\u043b, \u0442\u0440\u0435\u0442\u044c\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b WP8 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 MVVM. \u0414\u043b\u044f \u0441\u0430\u043c\u044b\u0445 \u043d\u0435\u0442\u0435\u0440\u043f\u0435\u043b\u0438\u0432\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 <a href=\"https:\/\/github.com\/struggleendlessly\/SE-Matrix-MVVM\/tree\/SE\/SE_Matrix_2d_v_14\">Github<\/a>, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0443 \u0441\u0435\u0431\u044f \u043d\u0430 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0435, \u0441\u043a\u0430\u0447\u0430\u0432 \u0441 <a href=\"http:\/\/www.windowsphone.com\/ru-ru\/store\/app\/se-matrix\/a2b8957e-cf16-4dec-8b06-5d591b351893?signin=true\">Windows Phone Store<\/a>.<\/p>\n<p>  \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u044d\u043a\u0440\u0430\u043d\u043e\u0432 HD720P (720&#215;1280), WVGA (480&#215;800), WXGA (768&#215;1280). \u0415\u0441\u0442\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043c\u0438\u043d\u0443\u0441: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u0442 480&#215;800, \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u0442\u0443 \u0438 \u0448\u0438\u0440\u0438\u043d\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 Grid \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0438\u0434\u0430. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443.<\/p>\n<p>  <a href=\"http:\/\/habrahabr.ru\/post\/195422\/\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 1<\/a><br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/195760\/\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 2<\/a><br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/201240\/\">Windows Phone 8: \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430. \u0427\u0430\u0441\u0442\u044c 3. MVVM<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/9fa\/b74\/b23\/9fab74b234353e9f8fabde2b526b7aaf.png\"\/>  <\/p>\n<h6>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u0432\u0438\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 WVGA (480&#215;800)<\/h6>\n<p>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-201240","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/201240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=201240"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/201240\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=201240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=201240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=201240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}