DataForm Template MVVM light
Bonjour, j'utilise le pattern MVVM (Toolkit de L.Brugnion) avec un ServiceLocator.
J'ai un DataForm customisé (qui binde une liste de mon VM) et dans lequel une combo doit être remplie par une autre collection de VM ...
Mon problème: ma combo n'est jamais remplie. Si vs avez une idée ?
Un extrait de mon VM:
Code:
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 27 28 29 30 31 32
|
public List<string> Colors
{
get
{
return _colors;
}
set
{
if (_colors != value)
{
_colors = value;
RaisePropertyChanged("Colors");
}
}
}
public NOTETHEME SelectedTheme
{
get
{
return _selectedTheme;
}
set
{
if (_selectedTheme != value)
{
_selectedTheme = value;
RaisePropertyChanged("SelectedTheme");
}
}
} |
Extrait du XAML:
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
... DataContext="{Binding Source={StaticResource ServiceLocator}, Path=ThemesPageViewModel}"
...
<toolkit:DataForm HorizontalAlignment="Stretch"
VerticalAlignment="Top"
CurrentItem="{Binding Path=SelectedTheme}"
FontFamily="Verdana" FontSize="13.333"
LabelPosition="Left" DescriptionViewerPosition="BesideContent" Height="162"
CommitButtonContent="Enregistrer"
CancelButtonContent="Annuler"
Header="Gestion des thèmes"
AutoEdit="False"
AutoCommit="False"
AutoGenerateFields="False"
CommandButtonsVisibility="All"
CommitButtonStyle="{StaticResource ButtonChromeStyle}"
CancelButtonStyle="{StaticResource ButtonChromeStyle}">
<toolkit:DataForm.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFE8F3FC" Offset="0"/>
<GradientStop Color="#FF9BCCEE" Offset="0.108"/>
</LinearGradientBrush>
</toolkit:DataForm.Background>
<toolkit:DataForm.EditTemplate>
<DataTemplate>
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="28" />
<RowDefinition Height="28" />
<RowDefinition Height="28" />
</Grid.RowDefinitions>
<toolkit:DataField Grid.Row="0" Label="Nom du thème" Width="Auto">
<TextBox Text="{Binding Mode=TwoWay, Path=THEME_NAME}" Style="{StaticResource TextBoxGlassyStyle}"/>
</toolkit:DataField>
<toolkit:DataField Grid.Row="1" Label="Couleur du Texte" Width="Auto">
<ComboBox ItemsSource="{Binding Mode=OneWay, Path=Colors}" />
</toolkit:DataField>
<toolkit:DataField Grid.Row="2" Label="Couleur du fond" Width="Auto">
<ComboBox ItemsSource="{Binding Mode=OneWay, Path=Colors}" />
</toolkit:DataField>
</Grid>
</DataTemplate>
</toolkit:DataForm.EditTemplate>
</toolkit:DataForm> |
Merci d'avance pour les réponses