2011-10-01 20 views
7

मैंने अपने चेकबॉक्स कमांड से कई पैरामीटर भेज दिए हैं। मैंने एक कनवर्टर इस्तेमाल किया है। कोड नीचे है। अगर मैं एक डिबगर रख दिया और देखने के लिए यहाँ मूल्यों मेरी परिणाम हैं:यह मल्टीबाइंडिंग क्यों काम नहीं कर रहा है

जब चेकबॉक्स जाँच या तो जाँच या unchekcked है:

कनवर्टर यह तेह मूल्यों (आइटम वस्तु और बूलियन की सरणी) है में। लेकिन जब मैं अपने विधि के लिए आते हैं, मूल्य एक [2] वस्तु है, लेकिन दोनों मान NULL

चेक बॉक्स XAML

<CheckBox x:Name="checkBox" 
       Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Data.Label}" 
       ClickMode="Release" 
       Command="{Binding Path=DataContext.SelectUnSelect}"> 
     <CheckBox.CommandParameter> 
      <MultiBinding Converter="{StaticResource SelectedItemConverter}"> 
       <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Content.Data"/> 
       <Binding RelativeSource="{RelativeSource Self}" Path="IsChecked"/> 
      </MultiBinding> 
     </CheckBox.CommandParameter> 

कन्वर्टर हैं:

public class CheckConverter : IMultiValueConverter 
{ 
    public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return values; 
    } 

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

मॉडल कमांड कोड देखें:

public ICommand SelectUnSelect 
    { 
     get { return new RelayCommand<object>(parm => this.SelectAndUnSelect(parm));} 
    } 

अगर मैं SelectAndUnSelect विधि में डीबगर डालता हूं, तो यह मुझे पार्म में ऑब्जेक्ट [2] दिखाता है लेकिन उनमें से दोनों शून्य हैं।

निरीक्षण: यदि मैं किसी भी बाइंडिंग में अपना कमांड पैरामीटर बांधता हूं तो यह ठीक काम करता है।

मुझे यहां क्या याद आ रही है?

  • शंकर

उत्तर

5

मैंने पहले ही समस्या लेने पर, अगर मुझे याद है तो सही ढंग से सिर्फ values के बजाय values.ToList() लौटने यह

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 
{ 
    return values.ToList(); 
} 
+1

यही काम किया ठीक करना चाहिए। यकीन नहीं है कि यह पहले क्यों काम नहीं कर रहा था। – Shankar

+0

मेरे लिए भी काम करता है। मुझे यह जानने में दिलचस्पी होगी कि यह केवल उस तरह से क्यों काम करता है, न कि ऑब्जेक्ट सरणी लौटकर। – csteinmueller

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