คำถามติดแท็ก inotifypropertychanged

30
การใช้ INotifyPropertyChanged - มีวิธีที่ดีกว่านี้หรือไม่?
Microsoft ควรนำสิ่งที่น่าสนใจมาใช้INotifyPropertyChangedเช่นในคุณสมบัติอัตโนมัติเพียงระบุว่า{get; set; notify;} ฉันคิดว่ามันสมเหตุสมผลดี หรือมีภาวะแทรกซ้อนใด ๆ ที่จะทำหรือไม่ ตัวเราเองสามารถใช้บางอย่างเช่น 'แจ้งเตือน' ในคุณสมบัติของเรา มีวิธีการแก้ปัญหาที่สง่างามสำหรับการนำไปใช้INotifyPropertyChangedในชั้นเรียนของคุณหรือวิธีเดียวที่จะทำได้คือการเพิ่มPropertyChangedเหตุการณ์ในแต่ละสถานที่ให้บริการ หากเราไม่สามารถเขียนบางสิ่งเพื่อสร้างชิ้นส่วนของรหัสโดยอัตโนมัติเพื่อเพิ่มPropertyChanged เหตุการณ์ได้

18
ObservableCollection ไม่สังเกตเห็นเมื่อรายการที่มีการเปลี่ยนแปลง (แม้จะมี INotifyPropertyChanged)
ไม่มีใครรู้ว่าทำไมรหัสนี้ใช้งานไม่ได้: public class CollectionViewModel : ViewModelBase { public ObservableCollection<EntityViewModel> ContentList { get { return _contentList; } set { _contentList = value; RaisePropertyChanged("ContentList"); //I want to be notified here when something changes..? //debugger doesn't stop here when IsRowChecked is toggled } } } public class EntityViewModel : ViewModelBase { private bool …

17
ViewModel หรือ Model ใน MVVM ควรใช้ INotifyPropertyChanged หรือไม่
ส่วนใหญ่ตัวอย่าง MVVM ฉันได้ทำงานผ่านได้มีรุ่นใช้ INotifyPropertyChangedแต่ในจอชสมิ ธ CommandSink ตัวอย่าง ดำเนิน ViewModelINotifyPropertyChanged ฉันยังคงรวบรวมแนวความคิด MVVM เข้าด้วยกันอย่างมีสติดังนั้นฉันไม่รู้ว่า: คุณต้องใส่INotifyPropertyChangedใน ViewModel เพื่อCommandSinkไปทำงาน นี่เป็นเพียงความคลาดเคลื่อนของบรรทัดฐานและมันก็ไม่สำคัญอะไร คุณควรมีโมเดลใช้อยู่เสมอINotifyPropertyChangedและนี่เป็นเพียงความผิดพลาดซึ่งจะได้รับการแก้ไขหากสิ่งนี้ได้รับการพัฒนาจากตัวอย่างโค้ดไปยังแอปพลิเคชัน อะไรคือประสบการณ์ของผู้อื่นในโครงการ MVVM ที่คุณได้ทำ?

1
[CallerMemberName] ทำงานช้าเมื่อเทียบกับทางเลือกอื่นเมื่อใช้ INotifyPropertyChanged หรือไม่
มีบทความที่ดีที่แนะนำให้มีวิธีการที่แตกต่างกันสำหรับการดำเนินการINotifyPropertyChanged พิจารณาการใช้งานพื้นฐานต่อไปนี้: class BasicClass : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private void FirePropertyChanged(string propertyName) { var handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } private int sampleIntField; public int SampleIntProperty { get { return sampleIntField; } set { if (value != sampleIntField) { sampleIntField = value; …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.