Hello tout le monde
J'ai disons 3 views appelées view1, view2 et view3.
Dans ma MainView, je souhaite avoir l'une des 3 vues suivant une valeur de mon ViewModel.
J'ai donc bindé le Content de mon UserControl sur cette valeur via un converter.
En gros, cela donne pour le xaml:
Et pour le converter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <toolbox:DiView.Resources> <help:SimulationParametersViewConverter x:Key="resSimulationParametersViewConveter" /> </toolbox:DiView.Resources> <Grid Height="auto" Width="auto" x:Name="UiMainLayout" DataContext="{Binding View, Source={StaticResource resViewLocator}}"> <UserControl x:Name="SimulationParametersView" Content="{Binding ViewModel.PricingTask.PayoffID, Converter={StaticResource </Grid>
Cela fonctionne comme je veux sauf que les differentes vues 1, 2 ou 3 ne sont pas détruites quand je switch de l'une à l'autre et ça me pose des problèmes de validation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public class SimulationParametersViewConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Int16 payoffID; if (value == null) return null; if (!Int16.TryParse(value.ToString(), out payoffID)) return null; switch (payoffID) { case 1: // sweet reverse return new Views.View1(); case 14: // autocall return new Views.View2(); case 23: // reverse convertible return new Views.View3(); default: throw new ArgumentException("The current PayoffID doesn't exist"); break; } } }
Comment faire pour réinitialiser le Content de mon UserControl entre chaque switch???
Merci
Partager