2011-06-07 13 views
5

मैं एक कस्टम उपयोगकर्ता नियंत्रण जो अपने मुख्य XAML नियंत्रण पर का उपयोग कर im बनाया है:की संपत्ति बनाना मेरी UserControl Bindable

<Controls:CustomControl Width="200" Height="20" 
TotalCount="{Binding TotalRecordCount}" SuccessCount="{Binding ValidationCount}" ErrorCount="{Binding ValidationErrorCount}" Margin="0,5,0,0" HorizontalAlignment="Left"> 
</Controls:CustomControl> 

मैं अपने कस्टम ERRORCOUNT, SuccessCount और कुल गणना की जा रही usercontrol के निजी चर बनाना चाहते थे (जो int32 प्रकार हैं) बाध्य करने योग्य तो मैं उन्हें मूल्यों को बांध सकता हूं। अभी जब मैं इसे अपने आइटम स्रोत से बांधने का प्रयास करता हूं तो यह निम्न त्रुटि देता है और अपवाद संदेश "प्रकार का ऑब्जेक्ट" सिस्टम है। Windows.Data. बाइंडिंग 'को प्रकार में परिवर्तित नहीं किया जा सकता है' System.Int32 '

बहुत धन्यवाद , मिशेल

उत्तर

6

आपको पीआर को लागू करने की आवश्यकता है DependencyProperty का उपयोग कर ऑपरेटिंग इन मानों को पकड़ने के लिए निजी चर का उपयोग नहीं करते हैं। यहां एक उदाहरण दिया गया है: -

#region public int SuccessCount 

    public int SuccessCount 
    { 
     get { return (int)GetValue(SuccessCountProperty); } 
     set { SetValue(SuccessCountProperty, value); } 
    } 

    public static readonly DependencyProperty SuccessCountProperty = 
     DependencyProperty.Register(
      "SuccessCount", 
      typeof(int), 
      typeof(CustomControl), 
      new PropertyMetadata(0, OnSuccessCountPropertyChanged)); 

    private static void OnSuccessCountPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     CustomControl source = d as CustomControl; 
     int value = (int)e.NewValue; 

     // Do stuff when new value is assigned. 
    } 
    #endregion public int SuccessCount 
+0

आपको बहुत बहुत धन्यवाद। –

0

एक संपत्ति के लिए आदेश में, "Bindable" होने के लिए जिसका अर्थ है आप DataBinding का उपयोग कर, कि संपत्ति एक Dependency Property होने की जरूरत है यह निर्धारित कर सकते हैं कि। पर निर्भरता गुण अधिक जानकारी के लिए, कृपया जांच करें this MSDN article

उम्मीद है कि यह मदद करता है :)

संबंधित मुद्दे