2013-10-18 4 views
6

मुझे यह समस्या है, कि मेरा चेकबॉक्स Ischecked संपत्ति बाध्यकारी काम नहीं कर रहा है। मैं गुस्से में था, लेकिन लोग कहते हैं कि यह shoudl दोवे बाध्यकारी है जो मैं उपयोग कर रहा हूँ।डब्ल्यूपीएफ चेकबॉक्स Ischecked बाध्यकारी काम नहीं कर रहा

<CheckBox Name="ckC" VerticalAlignment="Center" 
      IsChecked="{Binding Path=LSMChannelEnable[2], 
           Mode=TwoWay, 
           UpdateSourceTrigger=PropertyChanged}" /> 

यहाँ इसके पीछे सी # कोड है::

यहाँ मेरी कोड है

 public bool[] LSMChannelEnable 
     { 
      get 
      { 
       return this._liveImage.LSMChannelEnable; 
      } 
      set 
      { 
       this._liveImage.LSMChannelEnable = value; 
       OnPropertyChanged("LSMChannelEnable"); 
       OnPropertyChanged("EnableChannelCount"); 
       OnPropertyChanged("LSMChannel"); 
      } 
     } 

किसी भी संकेत दिए गए अत्यधिक सराहना कर रहे हैं,

+0

साइड-नोट के रूप में, WPF चेकबॉक्स डिफ़ॉल्ट रूप से दो-तरफा बाध्यकारी है। –

उत्तर

12

इसका कारण यह है कि आप एक सरणी के लिए बाध्य कर रहे हैं । संपत्ति को खींचें कि आप एक अलग संपत्ति से बांधना चाहते हैं।

Xaml:

IsChecked="{Binding Path=ButtonEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 

कोड:

public bool ButtonEnabled 
{ 
    get { return this._liveImage.LSMChannelEnable[2]; } 
    set { this._liveImage.LSMChannelEnable[2] = value; 
     OnPropertyChanged("ButtonEnabled"); 
    } 
} 
+0

आपका मतलब है "सार्वजनिक बूल बटन सक्षम"? – Karthik

+0

यूप! फिक्स्ड, धन्यवाद! –

+0

आप "सार्वजनिक बूल [] एलएसएमसीएनल एनेबल" के सेटटर में "ऑनप्रॉपर्टी चेंज (" बटनएनेबल ")" भी आग लगाना चाहेंगे। अन्यथा, यदि आप LSMChannel सक्षम करने के लिए एक अलग सरणी असाइन करने जा रहे हैं, तो संभावित रूप से परिवर्तित बूल मान बटन स्थिति द्वारा प्रतिबिंबित नहीं होगा। – elgonzo

4

इस प्रयास करें:

OnPropertyChanged("Item[]"); 

संपत्ति जब एक इंडेक्सर का उपयोग कर संकलक द्वारा उत्पन्न। this blog post देखें।

+0

धन्यवाद! लेकिन मुझे समझने के लिए ऊपर की ओर आसान लगता है। –

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