Согласно MSDN doc on PropertyChanged, если вы передадите пустую строку методу, все свойства будут обновлены. Есть ли такая вещь при использовании MvvmLight RaisePropertyChanged? Передача "" просто перетащите событие с помощью "".MvvmLight RaisePropertyChanged ("")
ответ
MVVM Light, кажется, checkthat будет проверять, если имя свойства вы прошли в существует. В этом случае это не имеет смысла.
Быстрый поиск показывает issue logged on the CodePlex site и отмечен как закрытый & исправлен, и он, кажется, исправлен в последней кодовой базе. Какую версию ты используешь?
Если вы не можете обновить, я предположил, что вы могли бы добавить свой собственный invocator (обратите внимание, что защищенный PropertyChangedHandler
accessor существует в 5.x, я понятия не имею, существует ли он в вашей версии).
private void RaiseAllPropertiesChanged()
{
var handler = PropertyChangedHandler;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(string.Empty));
}
}
Если вы используете V3, кажется, нет никакого решения (PropertyChangedHandler
не существует и проверка свойство будет бросать исключение, вы видите). Поскольку это, кажется, известная ошибка, которая исправлена, я бы предложил использовать более позднюю версию.
Ваш код кажется очень интересным. Когда я пытаюсь это сделать, я получаю ошибку компиляции: «Событие« ObservableObject.PropertyChanged »может появляться только с левой стороны + = или - =». Кажется, что он выбирает один из GalaSoft! – emoreau99
Да, 'PropertyChanged' - это событие, поэтому вы не можете использовать его для вызова события из производного класса. В коде, который я читал, есть accessor 'PropertyChangedHandler', который позволит это (это то, что находится в коде выше). Это может быть или не быть в вашей версии. –
Отлично. Благодарю. – emoreau99
Не уверен, MVVM-Light, но вот то, что вы можете сделать с .net FX 4.5 +:
using System.Runtime.CompilerServices;
class SomeClass : INotifyPropertyChanged
{
private int somefield;
public int SomeProperty
{
get { return somefield; }
set
{
somefield = value;
OnPropertyChanged();
}
}
public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged = delegate { };
}
Альтернатива The Fody Framework, которая реализует INotifyPropertyChanged с простыми атрибутами ... https://github.com/Fody/PropertyChanged –
Я предпочитаю придерживаться MvvmLight из-за всех других преимуществ – emoreau99
- 1. RaisePropertyChanged для Windows Phone
- 2. WPF: MvvmLight, Usercontrol, Binding
- 3. MvvmLight слишком много сообщений
- 4. Время разработки - MVVMLight
- 5. MVVM RaisePropertyChanged
- 6. MvvmCross RaisePropertyChanged
- 7. Инструментарий MVVMLight RaisePropertyChanged, похоже, не обновляет пользовательский интерфейс, когда DataContext остается на одном объекте
- 8. Как обновить интерфейс в MVVMLight RelayCommand?
- 9. Нарушение изменений с помощью MVVMLight 5?
- 10. RaisePropertyChanged устанавливает значение переключателей
- 11. Что это значит. RaisePropertyChanged ("")?
- 12. RaisePropertyChanged не обновляет UI
- 13. MVVM Light RaisePropertyChanged
- 14. Что такое событие raisePropertyChanged?
- 15. Когда выполняется RaisePropertyChanged?
- 16. странное поведение RaisePropertyChanged
- 17. RaisePropertyChanged не работает
- 18. RaisePropertyChanged и другая тема
- 19. Вручную вызовите RaisePropertyChanged
- 20. MVVM Light RaisePropertyChanged Error
- 21. MvvmLight, PCL и System.Runtime
- 22. MvvmLight и CustomMessageBox
- 23. EventtoCommand/SL5/MVVMLight V3
- 24. Бизнес-приложение MVVMLight?
- 25. MVVMLight EventToCommand в Xamarin.Forms
- 26. MVVMLight + RIA + MEF
- 27. MVVMLight ViewModelLocator регистрации DATASERVICE
- 28. MVVMLight и WP7 RTM
- 29. WPF-MvvmLight образец NotificationMessageWithCallback?
- 30. MVVMLight и Windows 10
прочитайте статью [спросите] ... пожалуйста, разместите соответствующий код, чтобы помочь нам помочь –
MVVMLight 'RaisePropertyChanged' - это реализация' INotifyPropertyChanged', см. Здесь: http: //mvvmlight.codeplex. com/SourceControl/latest # V3/GalaSoft.MvvmLight/GalaSoft.MvvmLight (NET35) /ViewModelBase.cs, поэтому я считаю, что он будет делать то же самое здесь, когда * используя либо null, либо String.Empty как имя свойства в PropertyChangedEventArgs. * – Bolu
@Bolu Взгляд на исходный код сказал бы иначе. Похоже, что он все равно будет генерировать исключение, если вы передадите либо null, либо String.Empty, если он создан в Debug. –