में उपयोगकर्ता नियंत्रण में नियंत्रण पर सत्यापन सत्यापन टेम्पलेट दिखाएं WPF त्रुटि उपयोगकर्ता टेम्पलेट को WPC में UserControl के भीतर नियंत्रण में दिखाई देने के लिए कैसे मिलता है?डब्ल्यूपीएफ
मेरे पास एक उपयोगकर्ता नियंत्रण है जिसमें दो लेबल, दो टेक्स्टबॉक्स और एक चेकबॉक्स शामिल है। टेक्स्टबॉक्स में से एक इकाई के नाम का प्रतिनिधित्व करता है और यह मेरे व्यूमोडेल द्वारा उजागर मॉडल मॉडल के नाम संपत्ति से जुड़ा हुआ है, जो मेरी विंडो का डेटाकॉन्टेक्स्ट है। मॉडल क्लास IDataErrorInfo इंटरफ़ेस लागू करता है और मैंने यूनिट परीक्षण के माध्यम से पुष्टि की है कि जब नाम खाली होता है तो संपत्ति इंडेक्स कार्यान्वयन के माध्यम से एक त्रुटि लौटा दी जाती है। मैंने निर्भरता संपत्ति को मेरे उपयोगकर्ता नियंत्रण में नाम टेक्स्टबॉक्स का समर्थन किया है और जब सत्यापन त्रुटि का सामना किया जाता है तो WPF त्रुटि टेम्पलेट केवल टेक्स्ट टेक्स्टबॉक्स के बजाय पूरे उपयोगकर्ता नियंत्रण के चारों ओर एक लाल सीमा रखता है।
उपयोगकर्ता नियंत्रण के नाम फ़ील्ड के लिए बाध्यकारी निम्नानुसार है।
<vc:MyUserControl ItemName="{Binding Model.Name, ValidatesOnDataErrors=True}" />
मेरे उपयोगकर्ता नियंत्रण और बैकिंग निर्भरताप्रॉपर्टी का एक अनुकरण संस्करण निम्नानुसार है।
<UserControl>
<Grid>
<TextBox Text="{Binding ItemName}" />
</Grid>
</UserControl>
public partial class MyUserControl: UserControl
{
public static readonly DependencyProperty ItemNameProperty =
DependencyProperty.Register(
"ItemName",
typeof(string),
typeof(MyUserControl),
new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)
);
public string ItemName
{
get { return (string)GetValue(ItemNameProperty); }
set { SetValue(ItemNameProperty, value); }
}
}
जानकारी मैं इस मुद्दे को अब तक सभी सिल्वरलाइट के संबंध में किया गया है से संबंधित या एक कनवर्टर का उपयोग कर लाल बॉर्डर (जो मेरे लिए कोई मतलब नहीं था) नहीं दिखाने के लिए मिल गया है। यह जानकारी यहां सब कुछ स्टैक ओवरफ्लो पर मिली थी।
क्या कोई भी इस समस्या को WPF के साथ हल करने में सक्षम है? क्या मैं कुछ स्पष्ट दिख रहा हूं?
संबंधित प्रश्न [यहां] (http://stackoverflow.com/q/7808986/620360) और [यहां] (http://stackoverflow.com/q/1198342/620360) – LPL
धन्यवाद, LPL। मैंने इस मुद्दे पर अपने शोध के दौरान इन दोनों सवालों को देखा था। दूसरे लिंक पर स्वीकृत उत्तर कनवर्टर का उपयोग है जिसे मैंने अपने प्रश्न में संदर्भित किया था। यह मेरे लिए काफी गलत लगता है। पहले प्रश्न में स्वीकृत उत्तर भी मेरे लिए काम नहीं कर रहा था। – CoderDawson