<TextBlock Text="{Binding Path=[0]} />
याWPF बाँध
<TextBlock Text="{Binding Path=[myKey]} />
ठीक काम करता है। लेकिन सूचकांक कुंजी के रूप में एक चर को पारित करने का कोई तरीका है?
<TextBlock Text="{Binding Path=[{Binding Column.Index}]} />
<TextBlock Text="{Binding Path=[0]} />
याWPF बाँध
<TextBlock Text="{Binding Path=[myKey]} />
ठीक काम करता है। लेकिन सूचकांक कुंजी के रूप में एक चर को पारित करने का कोई तरीका है?
<TextBlock Text="{Binding Path=[{Binding Column.Index}]} />
यह एक
IValueConverter
IMultiValueConverter
के लिए कहता है।
वास्तव में? क्या आप वर्णन कर सकते हैं कि आप इसे मूल्य कनवर्टर के साथ कैसे करेंगे? – ColinE
नहीं, मुझे डर नहीं है। इस बिंदु पर आपको शायद एक ऐसा दृश्य मॉडल बनाने पर विचार करना चाहिए जो आपके डेटा को आकार देने में आसान बनाता है।
इस संभाल करने के लिए सबसे तेज़ तरीका होता 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]];
}
भविष्य खोजकर्ताओं के लिए
MSDN लिंक: http://msdn.microsoft.com/en-us/library/ms742451.aspx – yzorg
इस लिंक में मेरा उत्तर चेक http://stackoverflow.com/q/ 4385693/217880 – biju