2010-12-22 13 views
12
<TextBlock Text="{Binding Path=[0]} /> 

याWPF बाँध

<TextBlock Text="{Binding Path=[myKey]} /> 

ठीक काम करता है। लेकिन सूचकांक कुंजी के रूप में एक चर को पारित करने का कोई तरीका है?

<TextBlock Text="{Binding Path=[{Binding Column.Index}]} /> 
+0

MSDN लिंक: http://msdn.microsoft.com/en-us/library/ms742451.aspx – yzorg

+0

इस लिंक में मेरा उत्तर चेक http://stackoverflow.com/q/ 4385693/217880 – biju

उत्तर

0

यह एक IValueConverter IMultiValueConverter के लिए कहता है।

+1

वास्तव में? क्या आप वर्णन कर सकते हैं कि आप इसे मूल्य कनवर्टर के साथ कैसे करेंगे? – ColinE

0

नहीं, मुझे डर नहीं है। इस बिंदु पर आपको शायद एक ऐसा दृश्य मॉडल बनाने पर विचार करना चाहिए जो आपके डेटा को आकार देने में आसान बनाता है।

12

इस संभाल करने के लिए सबसे तेज़ तरीका होता IMultiValueConverter कि संग्रह और इसकी बाइंडिंग के लिए सूचकांक को स्वीकार करता है के साथ एक MultiBinding उपयोग करने के लिए आमतौर पर है:

<TextBlock.Text> 
    <MultiBinding Converter="{StaticResource ListIndexToValueConverter}"> 
     <Binding /> <!-- assuming the collection is the DataContext --> 
     <Binding Path="Column.Index"/> 
    </MultiBinding> 
</TextBlock.Text> 

कनवर्टर तो जैसे दो मूल्यों पर आधारित देखने कर सकते हैं इस:

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 
{ 
    if (values.Length < 2) 
     return Binding.DoNothing; 

    IList list = values[0] as IList; 
    if (list == null || values[1] == null || !(values[1] is int)) 
     return Binding.DoNothing; 

    return list[(int)values[1]]; 
} 
भविष्य खोजकर्ताओं के लिए
संबंधित मुद्दे