В моем понимании, мы можем использовать INofityProperty в приложении MVVM стиля с кодом, аналогичным следующимиMVVM INotifyPropertyChanged с автоматическими свойствами реализации Названия
object _SelectedPerson;
public object SelectedPerson
{
get
{
return _SelectedPerson;
}
set
{
if (_SelectedPerson != value)
{
_SelectedPerson = value;
RaisePropertyChanged("SelectedPerson");
}
}
}
Теперь я видел Josh Smith's excellent example где он реализует дополнительным код, чтобы зафиксировать, что произойдет, если разработчик вводит имя свойства, которое не распознается, например, опечатка!
Скажите, пожалуйста, если вы ненавидите это, но есть способ получить имя метода из трассировки стека. Таким образом, мы могли бы вместо того, чтобы осуществить что-то вроде
object _SelectedPerson;
public object SelectedPerson
{
get
{
return _SelectedPerson;
}
set
{
if (_SelectedPerson != value)
{
_SelectedPerson = value;
RaisePropertyChanged(Current.Method);
}
}
}
static class Current
{
public static string Method()
{
StackTrace st = new StackTrace();
return (st.GetFrame(1).GetMethod().Name.Split('_')[1]);
}
}
Я могу только предположить, что это всегда будет работать, так как событие RaisePropertyChanged всегда происходит в сеттер (и если я ошибаюсь, пожалуйста, поправьте меня).
Теперь учтите, что я не в состоянии действительно попробовать это, потому что на работе (где я могу работать над большими проектами) я все еще на .NET 2.0, поэтому WPF/MVVM - это длинный путь в будущем, но я учусь в свое время.
Итак, мой вопрос от тех, кто его использовал, действительно ли лучше иметь подход, который предупреждает пользователя об ошибке по сравнению с удалением опции для ошибки (или вы чувствуете, что я пропущен что нибудь); Дело в том, что Джош Смит признан экспертом в этой области, и поэтому, если он предложит этот подход, то обычно я буду слепо, но в этом случае я не могу помочь, но викторину и чувствую необходимость понимать больше.
Это хорошо , но я не получаю ваш комментарий о «неправильно заполненном в сборках релизов». У вас есть что-нибудь, что я могу прочитать об этом (или даже фраза, которую я могу сам Google) +1 – Dave
Благодарим вас за редактирование, извините, что ограничено только 1x +1 – Dave
Я имел в виду, t доверять StackTrace в сборках релизов, поскольку код может быть оптимизирован, а методы, возможно, встроены. В случае свойств вы можете быть в порядке, но я бы вообще не использовал StackTrace. Есть несколько дискуссий по этой теме, например: http://stackoverflow.com/questions/7585010/exception-stack-trace-difference-between-debug-and-release-mode –