tag:blogger.com,1999:blog-5765252092422322392.post7641786782070474173..comments2024-02-17T11:34:03.614+03:00Comments on О программировании и всём, всём, всём: О INotifyPropertyChanged и DependencyPropertyАлексей Лосевhttp://www.blogger.com/profile/03807375131476928402noreply@blogger.comBlogger17125tag:blogger.com,1999:blog-5765252092422322392.post-37194168218945408502018-09-06T09:50:35.823+03:002018-09-06T09:50:35.823+03:00Статья 2012 года, тогда такой полезной штуки как C...Статья 2012 года, тогда такой полезной штуки как CallerMemberName еще не было, вот про нее https://losev-al.blogspot.com/2016/10/blog-post.html <br />Как всегда за все надо платить. Пишем nameof платим лишним стучанием по клавиатуре и большей скоростью работы, используем CallerMemberName меньше стучим по клавиатуре, чуть медленнее происходит вызов.Алексей Лосевhttps://www.blogger.com/profile/03807375131476928402noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-17307454047215393632018-09-06T08:40:04.962+03:002018-09-06T08:40:04.962+03:00опечатка RaisePropertyChanged(); конечно жеопечатка RaisePropertyChanged(); конечно жеAnonymoushttps://www.blogger.com/profile/02840096031962790597noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-82309882152427028842018-09-06T08:39:15.430+03:002018-09-06T08:39:15.430+03:00П.С.: ну а в свойстве просто вызываем метод
...П.С.: ну а в свойстве просто вызываем метод<br /> private bool _isEdit;<br /> public bool IsEdit<br /> {<br /> get { return _isEdit; }<br /> set<br /> {<br /> if (_isEdit != value)<br /> {<br /> _isEdit = value;<br /> OnPropertyChanged();<br /> }<br /> }<br /> }Anonymoushttps://www.blogger.com/profile/02840096031962790597noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-42384598737054652852018-09-06T08:36:18.747+03:002018-09-06T08:36:18.747+03:00Зачем nameof, если появилось CallerMemberName
как ...Зачем nameof, если появилось CallerMemberName<br />как итог метод становится таким :<br /><br /> protected void RaisePropertyChanged([CallerMemberName]string propertyName = "")<br /> {<br /> if (PropertyChanged != null)<br /> PropertyChanged(this, new PropertyChangedEventArgs(propertyName));<br /> }Anonymoushttps://www.blogger.com/profile/02840096031962790597noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-60866275163121164282018-08-04T01:48:32.560+03:002018-08-04T01:48:32.560+03:00Алексей спасибо вам огромное ваша статья меня прос...Алексей спасибо вам огромное ваша статья меня просто спасла! весь интернет перерыл люди пишут как то не понятно огромные коды лишь для маленькой вещи а вы так хорошо всё изложили и всё понятно и главное чётко. Только есть одно но у вас инициализация проходит через DataContext я пробовал у меня не получилось так я через ItemSource я не знаю это беда или нет. ещё есть два вопроса. У меня программа прочитывает .csv файл возможно ли через один метод про инициализировать все таблицы. либо для каждой таблицы надо иметь свой обработчик событий? и последний вопрос у вас есть статья как удалять со списка или добавлять в список? заранее спасибо!Anonymoushttps://www.blogger.com/profile/08258499309578512978noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-1724859313641597002018-04-09T11:28:48.951+03:002018-04-09T11:28:48.951+03:00Статья от 2012 года, тогда nameof еще не было. Сей...Статья от 2012 года, тогда nameof еще не было. Сейчас, согласен, проще с этим стало. Как я написал чуть ниже, у каждого из подходов есть свои плюсы и минусы, но они, уже в больше в области производительности.Алексей Лосевhttps://www.blogger.com/profile/03807375131476928402noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-14665225917386883262018-04-09T11:25:58.390+03:002018-04-09T11:25:58.390+03:00Да, при массовых присвоениях DependencyObject рабо...Да, при массовых присвоениях DependencyObject работает медленнее, согласен. Можно тоже добавить к критериям выбора.Алексей Лосевhttps://www.blogger.com/profile/03807375131476928402noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-90090282659334201652018-04-07T19:12:53.480+03:002018-04-07T19:12:53.480+03:00Я вот ещё кстати какую тему нашёл. Если вы не знал...Я вот ещё кстати какую тему нашёл. Если вы не знали, то думаю вам пригодится.<br />https://habrahabr.ru/post/95211/Anonymoushttps://www.blogger.com/profile/12684157912732114480noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-65888579507177338742018-04-06T09:29:07.356+03:002018-04-06T09:29:07.356+03:00Если нет ограничений по памяти, надо более быструю...Если нет ограничений по памяти, надо более быструю работу Binding-а и, самое главное, у вас есть возможность унаследоваться от DependencyObject, то лучше использовать его. Если класс к свойствам которого у вас планируется биндинг уже имеет предка и на вершине его иерархии нет DependencyObject, то у вас выбора нет, только INotifyPropertyChangedАлексей Лосевhttps://www.blogger.com/profile/03807375131476928402noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-9420839879344076922018-04-06T06:10:07.754+03:002018-04-06T06:10:07.754+03:00Я всё таки так и не понял в каких случаях использо...Я всё таки так и не понял в каких случаях использовать INotifyPropertyChanged и DependencyProperty. :( Anonymoushttps://www.blogger.com/profile/12684157912732114480noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-57637676608757498142018-02-21T21:46:53.428+03:002018-02-21T21:46:53.428+03:00Ну или чего-то из указанного во времена создания с...Ну или чего-то из указанного во времена создания статьи не было. Или забыто.<br />Или я "иногда" бываю не прав =)Anonymoushttps://www.blogger.com/profile/14716936894057143988noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-14948413251997562822018-02-21T21:42:54.537+03:002018-02-21T21:42:54.537+03:00Этот комментарий был удален автором.Anonymoushttps://www.blogger.com/profile/14716936894057143988noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-37541754436272381692018-02-21T21:42:53.549+03:002018-02-21T21:42:53.549+03:00какой-то странный недостаток у 3-го варианта по ср...какой-то странный недостаток у 3-го варианта по сравнению со 2-м. там точно так же имя свойства строкой указывается... и вообще есть уже давно nameof(...).<br />Отличие основное в проверке изменилось ли условие и надобности вызова уведомления. Можно его вызвать и без параметра имени функции, что ещё упрощает 3-й вариант. Надо только Caller... атрибут поставить в методе-приёмнике. Так что тут уж надо смотреть - наследовать можно - бери Dep..Obj.. т.к. коллекции большие побыстрее. Нет - ИНотифы.. Ну и по удобству тоже смотреть. Кому что удобнее в каких ситуациях. Anonymoushttps://www.blogger.com/profile/14716936894057143988noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-14654639356138297622016-07-21T13:48:04.140+03:002016-07-21T13:48:04.140+03:00Пожалуйста, для этого и писалось :)Пожалуйста, для этого и писалось :)Алексей Лосевhttps://www.blogger.com/profile/03807375131476928402noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-4548095652221684662016-07-21T13:35:22.971+03:002016-07-21T13:35:22.971+03:00Спасибо, Алексей! Теперь стало понятней)))Спасибо, Алексей! Теперь стало понятней)))Anonymoushttps://www.blogger.com/profile/07606542313732048964noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-74206584580420179992016-05-30T07:27:28.563+03:002016-05-30T07:27:28.563+03:00Пожалуйста. Рад, что пригодилось :)Пожалуйста. Рад, что пригодилось :)Алексей Лосевhttps://www.blogger.com/profile/03807375131476928402noreply@blogger.comtag:blogger.com,1999:blog-5765252092422322392.post-3150177445876969112016-05-23T15:34:10.757+03:002016-05-23T15:34:10.757+03:00Спасибо, Алексей! Ваша статья очень выручила!Спасибо, Алексей! Ваша статья очень выручила!Alexey Kothttps://www.blogger.com/profile/12726897810460725086noreply@blogger.com