DataContext değiştiğinde (değiştirilmediğinde) bir TextBox'un içeriğinin nasıl değiştirileceğini biliyor musunuz? Ben de UI gibi olduğu gibi haberdar olmak istiyorum, DataContext üzerinde bir çeşit olay ile. Şimdiye kadar, bunu yapmanın bir yolunu bulamadım ve vazgeçmek ve DataContext'imdeki her bir INotifyPropertyChanged
'daki tüm olaylara abone olmak üzereyim. Biliyorum, Window
10 sınıfında DataContextChanged
/DataContextChanging
var, ancak şu ana kadar ya işe yaramıyor ya da sadece DataContext değiştirilirken yanıyor. Bunu yapmanın bir yolu var mı?DataContext değiştirildiği zaman Wpf olayı
cevap
Sorulanları düşünün. Bir veri bağlamında herhangi bir özellik değişirse, genel olayı tetiklenir.
Bu işlemi dışarıdan gerçekleştirebilen hangi işlem kullanılabilir? el ile kendilerinin bunu programlanmış sürece
Yerinden Çözüm
Özellikleri bir değişiklik bildirimini vermeyin; Bu nedenle, normalde kullanmak için neden INotifyPropertyChange
yoldur.
Merkezi Çözümü
Aksi ayrı yöneticisi bütün özelliklerinin görüntüsünü alma örneğinin kapalı yansıtmak gerekir. Daha sonra bir zamanlayıcıda yönetici geçerli bir anlık görüntü için örneği yoklar ve bunu eski anlık görüntüyle karşılaştırır. Bir değişiklik tespit edilirse, bir olay başlatılabilir ve yeni anlık görüntü eskinin yerini alır. Pencere DataContext tamamen değiştirildiğinde
DataContextChanged
etkinlik yalnızca harekete geçirilir (boş olarak grubu, ya da yeni bir örneği, vs.). Doğru yolda olduğunuzu düşünüyorum ve ViewModel'inizde NotifyPropertyChanged
'a abone olmanız gerekecek. olay işleyicisi olarak, şöyle karşılık gelen mülkiyet geçiş yapabilirsiniz:
private void OnNotifyPropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.Property)
{
case "Property1":
break;
case "Property2":
break;
case "Property3":
break;
}
}
- 1. WPF: Set UserControl DataContext
- 2. DataContext boşsa veya WPF
- 3. C#/WPF: DataContext
- 4. wpf DataContext varlığına nasıl bağlanır?
- 5. WPF Doğrudan DataContext ile Bağlantılı Bağlama Bağlama
- 6. ListBox seçili veri değiştirildiği zaman seçili olanı değiştirme yeteneğini kaybeder
- 7. Veritabanı değiştirildiği zaman mvc güncelleştirme görünümü
- 8. Google Takvim Etkinliği değiştirildiği zaman DB'yi Güncelle
- 9. RegistryKey Değeri değiştirildiği zaman bildirim alın
- 10. WPF StoryBoard.Completed olayı tetiklenmiyor
- 11. Wpf liste görünümü öğesi seçim olayı
- 12. WPF Mouse Down Olayı tetiklenmiyor
- 13. WPF olayı ViewModel'e bağlanıyor mu?
- 14. WPF app.xaml çıkış olayı çalışmıyor
- 15. MVVM Pattern, ViewModel DataContext soru
- 16. Grunt - Değiştirildiği zaman bir dosya ve SFTP izleyin
- 17. Pencerenin RelativeSource ile WPF Bağlama Yolda "DataContext" gerektirir?
- 18. WPF ContextMenu woes: ContextMenu'nun DataContext özelliğini nasıl ayarlayabilirim?
- 19. "DOMNodeInserted" olayı ne zaman çağrıldı?
- 20. Silverlight - XAML'deki göreceli DataContext?
- 21. WPF: Adorner Hit Testi/MouseDown Olayı
- 22. WPF
- 23. sayfa history.pushState ve ajax çağrısı ile değiştirildiği zaman içerik komut dosyası ekleyiniz
- 24. DataContext değiştiğinde bağlamanın güncellenmesi
- 25. Structuremap DataContext nesnesinin atılması
- 26. UserControls içinde DataContext
- 27. DataGrid.RowStyle üzerinde DataContext Ayarı
- 28. Silverlight 2 - DataContext/Binding problem
- 29. ÖğelerSource vs DataContext bağlama durumunda
- 30. d3 + Backbone: verilerin değiştirildiği öğeleri güncelleştiriliyor
INotifyPropertyChanged TextBox çok – Domysee
Teşekkür @Domysee öyle tam olarak nasıl olduğunu, yani ben soruyu soran sonra gerçekleşen budur. Pencere kendisini tüm bağlamla ilişkilendirmez, ancak INotifyPropertyChanged olan bağlı değerler. Tabii ki! Çok teşekkürler! –