2010-12-09 29 views
0

J'ai cela dans le XAML:SilverLight: HyperLinkButton existe-t-il un autre moyen de passer des arguments à la fonction Click en plus d'utiliser Tag?

<HyperlinkButton Tag="{Binding Href}" Click="lbImage_hyperlink"> 
           <Image Source="{Binding Href}" Height="40" Width="40" Stretch="UniformToFill" 
           Cursor="Hand" Margin="0,0,-1,0" /> 
          </HyperlinkButton> 

dans le code derrière utiliser la fonction Click:

private void lbImage_hyperlink(object sender, RoutedEventArgs e) 
    { 
     HyperlinkButton hlbTemp = sender as HyperlinkButton; 
     ImageSource imageSource = (ImageSource)hlbTemp.Tag; 
     Preview.Source = imageSource; 
    } 

Comment puis-je tirer parti des RoutedEventArgs? Ou tout autre moyen d'utiliser Tag?

Merci

SimpleCode

Répondre

0

NavigateUri est un DependencyProperty donc vous pouvez le lier à tout ce que vous le désirez sur votre ViewModel ou toute autre représentation de l'objet si vous ne suivez pas un modèle MVVM. Gardez à l'esprit qu'il accepte un Uri alors assurez-vous que la propriété que vous liez est un Uri pas un String. Si vous souhaitez utiliser un String, utilisez un IValueConverter.

<HyperlinkButton NavigateUri="{Binding UriOnViewModel}" Click="lbImage_hyperlink"> 
           <Image Source="{Binding Href}" Height="40" Width="40" Stretch="UniformToFill" 
           Cursor="Hand" Margin="0,0,-1,0" /> 
          </HyperlinkButton>