DataGrid
içine bir köprü eklemeyi ve MVVM desenini kullanarak RequestNavigate
davranışını uygulamak için bir yöntem bulmaya çalışıyorum.MVVM deseninde Köprü kullanımı ile Hücre Şablonu
Şimdiye kadar çok fazla çözüm denedim, ancak bunların hiçbiri işe yaramıyor. Bana yardım edebilir misiniz, lütfen?
Bu benim xaml kodu:
<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>
ve bağıl ICommand
gelişimini aşağıdaki: yanılıyorum
//Command for open link
RelayCommand _openLinkCommand;
public ICommand OpenLinkCommand
{
get
{
if (_openLinkCommand == null)
_openLinkCommand = new RelayCommand(param =>
{
//Command Body ...
});
return _openLinkCommand;
}
}
? Beklenmedik şekilde, ICommand
asla çağrılmadı!
Başka türde bir etkinliği (örneğin, MouseEnter
) kullanmayı denedim, ancak hiçbir şey değişmedi! Katkılarınız için şimdiden
sayesinde
Deby Köprünün DataContext DataGridRow, senin ViewModel tarafından temsil nesnenin olmasıdır
DataRow ile temsil edilen nesnenin bulunan OpenLinkCommand mı yoksa komut ViewModel'inizde? –
Aslında ViewModel'ımda var ... – Deby