Ce mon view.xaml:Comment définir le contexte de données pour le contrôle utilisateur avec prisme wpf?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" x:Name="grdFormSearch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<local:StudentUserControl HorizontalAlignment="Stretch" Height="100" VerticalAlignment="Stretch"/>
</Grid>
</Grid>
Au-dessus j'ai ajouté un StudentUserControl
dans view.xaml.
StudentUserControl.xaml.cs:
public partial class StudentUserControl : UserControl
{
public StudentUserControl(StudentViewModel ViewModel)
{
InitializeComponent();
this.DataContext = ViewModel;
}
}
StudentViewModel.cs:
public StudentViewModel(IEventAggregator eventAggregator, IUnityContainer container)
{
_eventAggregator = eventAggregator;
_container = container;
}
Il jette une erreur en XAML, car il attend un constructeur parameterless! Comment régler le DataContext
pour le UserControl
? Quelle est la meilleure approche pour le faire?
Alors essayez-vous que votre UserControl utilise un ViewModel différent de la vue sur laquelle il est hébergé? – Kelly
D'où vient l'instance de 'StudentViewModel'? – grek40
Il n'est pas nécessaire de définir explicitement le DataContext d'un UserControl. Il est généralement hérité de l'un des contrôles parents de l'arborescence XAML. – Clemens