में हाइपरलिंक उपयोग के साथ सेल टेम्पलेट मैं DataGrid
के भीतर एक हाइपरलिंक डालने की कोशिश कर रहा हूं और एमवीवीएम पैटर्न का उपयोग कर RequestNavigate
व्यवहार को लागू करने के लिए एक विधि ढूंढ रहा हूं।एमवीवीएम पैटर्न
मैं अब तक समाधान अप का एक बहुत कोशिश की है, लेकिन उनमें से कोई काम करता है। क्या आप कृपया मेरी मदद कर सकते हैं?
यह मेरी XAML कोड है:
<dgWPFCtrl:ExtDataGridTemplateColumn Header="Link to XXX" Width="*">
<dgWPFCtrl:ExtDataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock >
<Hyperlink NavigateUri="{Binding Path=ID_HTTP_LINK}"
>
<TextBlock Text="{Binding Path=ID_HTTP_LINK}"/>
<i:Interaction.Triggers>
<i:EventTrigger EventName="RequestNavigate">
<WPFCtrl:EventToCommand
PassEventArgsToCommand="True"
Command="{Binding Path=OpenLinkCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Hyperlink>
</TextBlock>
</DataTemplate>
</dgWPFCtrl:ExtDataGridTemplateColumn.CellTemplate>
</dgWPFCtrl:ExtDataGridTemplateColumn>
और रिश्तेदार ICommand
विकास निम्नलिखित:
//Command for open link
RelayCommand _openLinkCommand;
public ICommand OpenLinkCommand
{
get
{
if (_openLinkCommand == null)
_openLinkCommand = new RelayCommand(param =>
{
//Command Body ...
});
return _openLinkCommand;
}
}
कहाँ मैं गलत हूँ? अप्रत्याशित रूप से, ICommand
को कभी भी बुलाया नहीं जाता है!
मैं भी घटना (MouseEnter
जैसे) के अन्य प्रकार का उपयोग करने की कोशिश की है, लेकिन कुछ भी नहीं बदला!
अपने योगदान के लिए अग्रिम धन्यवाद,
Deby
वस्तु में स्थित OpenLinkCommand DataRow द्वारा प्रतिनिधित्व किया जा रहा है, या आदेश है अपने ViewModel में? –
असल में यह मेरे व्यूमोडेल में है ... – Deby