मेरे पास ऑब्जेक्ट का संग्रह है और मेरे व्यूमोडेल में एक कमांड है।आइटम कंट्रोल के अंदर से मॉडल प्रॉपर्टी देखने के लिए बाध्यकारी। इटैम टेम्पलेट
मैं संग्रह में प्रत्येक ऑब्जेक्ट के लिए एक हाइपरलिंक प्रदर्शित करना चाहता हूं, और ऑब्जेक्ट आईडी में कमांडपेयरमीटर के रूप में गुजरने के लिए प्रत्येक हाइपरलिंक के कमांड को एक ही कमांड पर सेट करना चाहता हूं। जैसे
// View Model
public class MyViewModel : ViewModelBase
{
// Raises PropertyChanged event, ommited here
public List<MyClass> MyList {....}
public RelayCommand<int> MyCommand {....}
}
मैंने उपरोक्त ViewModel क्लास में अपने UserControl का DataContext सेट किया है। इस UserControl के लिए XAML इस प्रकार है:
<UserControl>
<ItemsControl ItemsSource="{Binding Path=MyList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<HyperlinkButton Content="{Binding Path=Description}" Command="{Binding Path=MyCommand}" CommandParameter="{Binding Path=MyClassID}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</UserControl>
हाइपरलिंक सामग्री के लिए विवरण सही ढंग से दिखाया गया है, लेकिन आदेश कभी नहीं आग, मैं इस लगता है, क्योंकि यह MyClass वस्तु के भीतर एक आदेश के लिए देख रहा है?
मैं MyClass.MyCommand की बजाय UserControls DataContext.MyCommand से कैसे जुड़ सकता हूं?
क्रिस मुझे फर्मिन जैसी ही समस्या है। मैं एसएल 5 का उपयोग कर रहा हूं, सापेक्ष स्रोत बाध्यकारी काम नहीं करता है, न ही आपका जवाब करता है। बीटीडब्लू मैं नहीं देखता कि आपका उत्तर कैसे काम कर सकता है क्योंकि डेटाकॉन्टेक्स्ट में माइक्रॉमैंड नामक संपत्ति नहीं है। मेरे व्यू i.e. रूट में मेरे पास गेटटर में व्यूमोडेल नामक एक संपत्ति है जो मैं करता हूं: वापसी (MyViewModel) DataContext। यह अब भी काम नहीं करता है। – Sam
हाय सैम, माईकॉमैंड उदाहरण से संबंधित है कि फर्मिन ने प्रदान किया - उनके दृश्य मॉडल पर एक आदेश। दुर्भाग्यवश मेरे पास आपकी मदद करने के लिए आपकी समस्या का पर्याप्त विवरण नहीं है। आप एक नया प्रश्न शुरू करने से बेहतर होंगे, ठीक उसी विवरण के विवरण के साथ जो आप करने की कोशिश कर रहे हैं और आप इसे कैसे करने की कोशिश कर रहे हैं। –