2017-08-24 1 views
0

Je suis assez nouveau pour WPF et je pourrais vraiment le faire avec de l'aide. Est-il possible de lier un objet ImageAwesome (Font-Awesome) à partir d'une propriété ViewModel? En l'état, mon ViewModel à l'instanciation crée un objet ImageAwesome qui est ensuite accessible à l'aide de la propriété SpinIcon.Lier un objet ImageAwesome dans WPF à partir d'une propriété ViewModel

ViewModel

public class DefaultPageViewModel : BaseViewModel 
{ 

    private ImageAwesome _spinIcon; 


    public DefaultPageViewModel() 
    { 
     _spinIcon = new ImageAwesome(); 
     _spinIcon.Icon = FontAwesomeIcon.Spinner; 
     _spinIcon.Height = 10; 
    } 

    public ImageAwesome SpinIcon { 

     get 
     { 
      return _spinIcon; 
     } 
     set 
     { 
      if(value != _spinIcon) 
      { 
       _spinIcon = value; 
       OnPropertyChanged("SpinIcon"); 
      } 
     } 

    } 

} 

je peux lier les propriétés individuelles de SpinIcon comme indiqué ci-dessous, mais cela causerait de beaucoup de duplication de code qui j'essaie d'éviter.

UserControl

<UserControl.Resources> 
     <default:DefaultPageViewModel x:Key="DefaultVM" /> 
     <SolidColorBrush x:Key="ImageBrush" Color="LightBlue" /> 
    </UserControl.Resources> 

    <Grid> 
     <fa:ImageAwesome Icon="{Binding SpinIcon.Icon, Source={StaticResource DefaultVM}}" /> 
    </Grid> 
</UserControl> 

Toute aide serait grandement appréciée.

Répondre

1

Essayez ceci:

<ContentControl Content="{Binding SpinIcon, Source={StaticResource DefaultVM}}" /> 
+0

Je ne savais pas qu'on pouvait faire ça! Fonctionne très bien merci! – Kitson88