आप क्या अपेक्षा की थी? प्रॉपर्टी चेंज इवेंट यूआई कोड द्वारा उपयोग किया जाता है, लेकिन उस अर्थ में आप लिख रहे हैं। नियंत्रण INPC (INotifyPropertyChanged का संक्षिप्त रूप) को लागू कभी नहीं, वे आपत्ति उठाने कि INPC को लागू किया है बाध्य कर रहे हैं। इस तरह कुछ यूआई गुण, उदा। टेक्स्ट टेक्स्टबॉक्स नियंत्रण पर संपत्ति ऐसी कक्षा पर एक संपत्ति के लिए बाध्य है। यह एमवीवीएम आर्किटेक्चर का आधार है।
उदाहरण के लिए, आप निम्नलिखित XAML कोड लिखना होगा:
<TextBlock x:Name="txtBox" Text="{Binding Title}" />
और तुम TextBlock के लिए डेटा संदर्भ निर्धारित (या अपने पूर्वजों के किसी भी, DataContext प्रचारित किया जाता है) निम्नलिखित तरीके से कोड में:
txtBox.DataContext = new Movie {Title = "Titanic"};
और अब वर्ग खुद के लिए:
public class Movie : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
private string _title;
public string Title
{
get { return _title; }
set
{
if (_title == value) return;
_title = value;
NotifyPropertyChanged("Title");
}
}
}
अब, जब भी आप चर्चा शीर्षक संपत्ति को एंज करें, चाहे कोड में या अन्य बाध्यकारी के माध्यम से, यूआई स्वचालित रूप से रीफ्रेश हो जाएगा। डेटा बाध्यकारी और एमवीवीएम के लिए Google।
स्रोत
2012-09-17 20:03:13
यह आपके जैसा काम नहीं करता है। बस एक अतिरिक्त कक्षा बनाएं और वहां अधिसूचना इंटरफ़ेस लागू करें और इस कक्षा को UserControl के DataContext पर लागू करें। और यह आपकी तरह काम करेगा। –