मैं code of MSDN के साथ एमवीवीसी की अपनी समझ जारी रखता हूं और मेरे पास एक प्रश्न है।डब्ल्यूपीएफ डेटा टेम्पलेट और बाइंडिंग
.xaml में उनके पास स्क्रीन पर प्रदर्शित आदेशों की एक सूची है।
<Border
Grid.Column="0"
Style="{StaticResource MainBorderStyle}"
Width="170"
>
<HeaderedContentControl
Content="{Binding Path=Commands}"
ContentTemplate="{StaticResource CommandsTemplate}"
Header="Control Panel"
Style="{StaticResource MainHCCStyle}"
/>
</Border>
यहाँ से, मैं समझता हूँ कि DataContext सेट किया गया है (यहाँ नहीं दिखाया गया है) और यह आदेश के संग्रह को प्रदर्शित करेगा। जो मुझे समझ में नहीं आता है वह कमांड टेम्पलेट है जिसे आप नीचे देख सकते हैं:
<DataTemplate x:Key="CommandsTemplate">
<ItemsControl IsTabStop="False" ItemsSource="{Binding}" Margin="6,2">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Margin="2,6">pou
<Hyperlink Command="{Binding Path=Command}">
<TextBlock Text="{Binding Path=DisplayName}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
बाध्यकारी कैसे बनाया जाता है? यह कोड संग्रह के अंदर ऑब्जेक्ट से कमांड और DisplayName संपत्ति को जांचने के लिए कैसे कहता है? क्या यह आइटमसोर्स से है? यदि हां, तो मुझे समझ में नहीं आता कि यह केवल {बाध्यकारी} क्यों है। कोई भी मुझे समझा सकता है कृपया ContentTemplate से डेटा टेम्पलेट बाध्यकारी कार्य कैसे करें?
यदि यह DataContext करने के लिए सीधे बांधता यह सूची के संदर्भ और नहीं तत्व से आबद्ध किया जाना चाहिए सूची का? –
यह आइटम नियंत्रण के लिए सच है, लेकिन आइटम्स कंट्रोल में प्रत्येक ** आइटम ** के डेटाकॉन्टेक्स्ट के लिए सूची का एक तत्व होगा। – Ray
ठीक है, इसलिए {बाइंडिंग} का उपयोग करके इस संग्रह के अंदर डेटा कॉन्टेक्स्ट सही होगा? –