Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

Best way to reuse elements in xaml

$
0
0

Hi,

I have a xaml which defines a DataTemplate and inside it I have to put some items defined as 

<StackPanel Orientation="Horizontal"><TextBox Name="Address" Width="100"/><ComboBox Name="Type"/><TextBox Name="Description" Width="200"/></StackPanel>

So, instead of repeat many times it, I thought to use a ControlTemplate or a UserControl but, due to my limited knowledge, in both cases I have some doubts.

Using ControlTemplate works but, considering this code:

<DataTemplate.Resources><ControlTemplate x:Key="AddressItemTemplate"><StackPanel Orientation="Horizontal"><TextBox Name="Address" Width="200"/><ComboBox Name="Type"/><TextBox Name="Description" Width="200"/></StackPanel></ControlTemplate></DataTemplate.Resources><Grid Margin="0 50 100 0"><Grid.RowDefinitions><RowDefinition Height="Auto" /><RowDefinition Height="Auto" /><RowDefinition Height="Auto" /><RowDefinition Height="Auto" />
      ....<RowDefinition Height="Auto" /></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="Auto" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions><Control Grid.Row="0" Grid.Column="1" Template="{StaticResource AddressItemTemplate}" /><Control Grid.Row="1" Grid.Column="1" Template="{StaticResource AddressItemTemplate}" /><Control Grid.Row="2" Grid.Column="1" Template="{StaticResource AddressItemTemplate}" /></Grid>
How can I bind the elements inside my template to the DataProvider (in my case an XmlDataProvider)?

Instead, using a UserControl I don't know to use it after having declare it:

<DataTemplate.Resources><UserControl
        Name="AddressItem"
        x:Class="AddressItem.UserControl"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" ><StackPanel Orientation="Horizontal"><TextBox Name="Address" Width="200"/><ComboBox Name="Type"/><TextBox Name="Description" Width="200"/></StackPanel></UserControl></DataTemplate.Resources><Grid Margin="0 50 100 0"><Grid.RowDefinitions><RowDefinition Height="Auto" /><RowDefinition Height="Auto" /><RowDefinition Height="Auto" /><RowDefinition Height="Auto" />
      ....<RowDefinition Height="Auto" /></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="Auto" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions>< ???? ></Grid>

Any suggestions?

Daniele.


Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>