Creates the UIElement objects in the DataTemplate.
Syntax
Parameters
This method has no parameters.
Return value
Type: DependencyObject
The root UIElement of the DataTemplate.
Remarks
When you call LoadContent, the UIElement objects in the DataTemplate are created, and you can add them to the visual tree of another UIElement.
Examples
The following examples demonstrate using the LoadContent method to change the appearance of a Border at run time. The example creates a ListBox that contains the numbers 1 through 10. When the user selects an item in the ListBox, the Border displays the selected number. If the user selects an even number, the number is red and has a green circle around it. If the user selects an odd number, the number is blue and has a purple square around it.
<StackPanel Name="rootStackPanel"> <StackPanel.Resources> <DataTemplate x:Key="oddNumberTemplate"> <Grid> <Rectangle Stroke="Purple" StrokeThickness="4" /> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24" Foreground="Blue" FontWeight="Bold"/> </Grid> </DataTemplate> <DataTemplate x:Key="evenNumberTemplate"> <Grid> <Ellipse Stroke="Green" StrokeThickness="4"/> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24" Foreground="Red" FontWeight="Bold" /> </Grid> </DataTemplate> </StackPanel.Resources> <Border Name="selectedItemDisplay" Width="50" Height="50"/> <ListBox Name="numberList" SelectionChanged="ListBox_SelectionChanged"> <ListBoxItem Content="1"/> <ListBoxItem Content="2"/> <ListBoxItem Content="3"/> <ListBoxItem Content="4"/> <ListBoxItem Content="5"/> <ListBoxItem Content="6"/> <ListBoxItem Content="7"/> <ListBoxItem Content="8"/> <ListBoxItem Content="9"/> <ListBoxItem Content="10"/> </ListBox> </StackPanel>
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListBoxItem lbi = ((sender as ListBox).SelectedItem as ListBoxItem); SelectDataTemplate(lbi.Content); } private void SelectDataTemplate(object value) { string numberStr = value as string; if (numberStr != null) { int num; try { num = Convert.ToInt32(numberStr); } catch { return; } DataTemplate template; // Select one of the DataTemplate objects, based on the // value of the selected item in the ComboBox. if (num % 2 != 0) { template = rootStackPanel.Resources["oddNumberTemplate"] as DataTemplate; } else { template = rootStackPanel.Resources["evenNumberTemplate"] as DataTemplate; } selectedItemDisplay.Child = template.LoadContent() as UIElement; TextBlock tb = FindVisualChild<TextBlock>(selectedItemDisplay); tb.Text = numberStr; } } private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) { return (childItem)child; } else { childItem childOfChild = FindVisualChild<childItem>(child); if (childOfChild != null) return childOfChild; } } return null; }
Requirements
|
Minimum supported client | Windows 8 |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 1/31/2013