Je suis aux prises avec des modèles de contrôle. Je construis actuellement une interface utilisateur qui a plusieurs volets qui sont essentiellement construits à partir de contrôles plus basiques.Comment accéder et fournir des valeurs par défaut aux contrôles dans les modèles WPF?
est ici comment un de nos panneaux de construction ressemble en ce moment:
<Grid>
<StackPanel>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Template="{StaticResource StringCtrl}" Content="Cash Event Value:"/>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Template="{StaticResource RateCtrl}"></ContentControl>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Grid.Row="0" Template="{StaticResource FromCtrl}"></ContentControl>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Grid.Row="0" Template="{StaticResource StartEndDateCtrl}"></ContentControl>
</ContentControl>
<ContentControl Template="{StaticResource ConstructionBorderCtrl}">
<ContentControl Grid.Row="0" Template="{StaticResource ComboStringCtrl}">Applicable Size:</ContentControl>
</ContentControl>
</StackPanel>
</Grid>
est ici un modèle pour la StringCtrl comme exemple:
<ControlTemplate x:Key="StringCtrl" TargetType="ContentControl">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Name="ctrlText" Margin="0,0,5,0" Text="{TemplateBinding Content}"></TextBlock>
<TextBox Name="ctrlDefaultValue" Grid.Column="1" />
</Grid>
</ControlTemplate>
Comme vous pouvez le voir à partir du modèle, il est vraiment juste une étiquette et une zone de texte. Supposons maintenant que je souhaite fournir une valeur par défaut à la zone de texte et effectuer une validation sur les entrées utilisateur, mais je souhaite fournir ce contexte à partir du volet Construction parent et le lier aux éléments individuels à l'intérieur des modèles. Comment ferais-je cela?
me semble que vous allez dans le mauvais sens. Pourquoi utilisez-vous des modèles pour cela? Si vous cherchez à créer une conception modulaire, utilisez UserControls. –