« Template » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Aucun résumé des modifications |
|||
Ligne 32 : | Ligne 32 : | ||
</kode> | </kode> | ||
= DataTemplate implicite = | = [https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-templating-overview DataTemplate] = | ||
== DataTemplate implicite == | |||
<kode lang='xaml'> | <kode lang='xaml'> | ||
<Window.Resources> | <Window.Resources> | ||
Ligne 61 : | Ligne 62 : | ||
public string Text { get; set; } | public string Text { get; set; } | ||
} | } | ||
</kode> | |||
== DataTemplate == | |||
<kode lang='xaml'> | |||
<Window xmlns:local="clr-namespace:MyNamespace"> | |||
<Window.Resources> | |||
<DataTemplate x:Key="myDataTemplate" | |||
DataType="{x:Type local:Item}"> | |||
<TextBlock Text="{Binding Name}"></TextBlock> | |||
</DataTemplate> | |||
</Window.Resources> | |||
<ItemsControl ItemsSource="{Binding myItems}" | |||
ItemTemplate="{StaticResource myDataTemplate}" /> | |||
</kode> | </kode> |
Version du 14 avril 2020 à 09:14
Définition
Permet de changer la manière dont seront dessinés les objets graphiques.
ControlTemplate embarqué dans un style
<Window.Resources> <Style TargetType="{x:Type TextBox}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <Button Content="{TemplateBinding Property=Text}"/> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> |
ControlTemplate sans style
<Window.Resources> <!-- Définit un Template en dehors d'un style : une clé doit être définie --> <ControlTemplate x:Key="templateToButton" TargetType="{x:Type TextBox}"> <!-- Lie la propriété Content du Button avec la propriété Text du TextBox --> <Button Content="{TemplateBinding Text}" /> </ControlTemplate> </Window.Resources> <!-- Applique le template via la clé --> <TextBox Template="{StaticResource templateToButton}" /> |
DataTemplate
DataTemplate implicite
<Window.Resources> <!-- Ce DataTemplate s'applique à tous les MonItem --> <DataTemplate DataType="{x:Type local:MonItem}"> <Button Content="{Binding Text}"></Button> </DataTemplate> </Window.Resources> <ItemsControl ItemsSource="{Binding Items}"></ItemsControl> |
public class MonViewModel { public MonViewModel() { Items = new List<MonItem>(); Items.Add(new MonItem() { Text = "AAA" }); Items.Add(new MonItem() { Text = "BBB" }); Items.Add(new MonItem() { Text = "CCC" }); } public List<MonItem> Items { get; set; } } public class MonItem { public string Text { get; set; } } |
DataTemplate
<Window xmlns:local="clr-namespace:MyNamespace"> <Window.Resources> <DataTemplate x:Key="myDataTemplate" DataType="{x:Type local:Item}"> <TextBlock Text="{Binding Name}"></TextBlock> </DataTemplate> </Window.Resources> <ItemsControl ItemsSource="{Binding myItems}" ItemTemplate="{StaticResource myDataTemplate}" /> |