Wie kann ich ein Stackpanel ItemTemplate zu benutzen?
-
06-07-2019 - |
Frage
Im folgenden Code, sage ich dem ComboBox verwenden, die Datatemplate CustomerTemplate genannt durch die Zuordnung seines ItemTemplate Attributs.
Stackpanel , jedoch nicht ein ItemTemplate Attribut hat.
Wie kann ich die Stackpanel erhalten auch CustomerTemplate verwenden?
<Window.Resources>
<DataTemplate x:Key="CustomerTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}"/>
<TextBlock Text=" "/>
<TextBlock Text="{Binding LastName}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<DockPanel LastChildFill="False" Margin="10">
<ComboBox
x:Name="CustomerList"
ItemTemplate="{StaticResource CustomerTemplate}"
HorizontalAlignment="Left"
DockPanel.Dock="Top"
Width="200"
SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"
ItemsSource="{Binding Customers}"/>
<StackPanel DataContext="{Binding SelectedCustomer}" Orientation="Horizontal">
<TextBlock Text="Chosen: "/>
<TextBlock Text="{Binding LastName}"/>
</StackPanel>
</DockPanel>
Lösung
Items ist im Wesentlichen ein Stackpanel mit ein ItemTemplate. Es verwendet eine Stackpanel intern.
Allerdings sieht es aus wie Sie versuchen, einen einzigen Kunden angezeigt werden, anstatt eine Liste von ihnen (ich klinge wie Clippy, nicht wahr?). In diesem Fall mögen Sie einen Content verwenden:
<ContentControl
Content="{Binding SelectedCustomer}"
ContentTemplate="{StaticResource CustomerTemplate}" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow