DataTemplate
Last post 05-14-2008 5:28 AM by thierry.bouquain. 1 replies.
Sort Posts:
05-13-2008 5:49 PM
DataTemplate

This seems like a fairly simple problem to fix so here goes. I have a stackpanel where I want to have a template per item. Here is what I have:

 <StackPanel HorizontalAlignment="Stretch" Margin="8,34.7220001220703,8,8" VerticalAlignment="Stretch" x:Name="EmailStackPanel">
                <StackPanel.Resources>
                    <DataTemplate x:Key="EmailTemplate">
                        <Grid Height="30" Margin="1,0,1,0" Width="Auto" Background="{Binding MailBackground}"> <!--#7F595959 -->
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="0.039*"/>
                                <ColumnDefinition Width="0.044*"/>
                                <ColumnDefinition Width="0.071*"/>
                                <ColumnDefinition Width="0.661*"/>
                                <ColumnDefinition Width="0.185*"/>
                            </Grid.ColumnDefinitions>
                            <CheckBox HorizontalAlignment="Stretch" Margin="6,0,5.8730001449585,0" VerticalAlignment="Stretch" HorizontalContentAlignment="Center" Padding="0,0,0,0" Grid.Column="1" Content="" IsChecked="{Binding IsChecked}" d:LayoutOverrides="Height"/>
                            <Image Margin="5.28999996185303,0.579999983310699,5.28800010681152,0" VerticalAlignment="Stretch" Grid.Column="2" Source="{Binding ImageSource}" Stretch="Uniform" d:LayoutOverrides="HorizontalAlignment"/>
                            <Path Visibility="{Binding IsSelectVisible}" HorizontalAlignment="Stretch" Margin="7,7.77799987792969,5,6.72200012207031" VerticalAlignment="Stretch" Data="M5.5,6.7779999 L13.5,14.278 L6.0000234,22.278" Stretch="Fill" Stroke="#FF585858" StrokeThickness="3"/>
                            <TextBlock Margin="0,0,0.00100000004749745,0" FontFamily="Trebuchet MS" FontSize="14" Foreground="#FFDBDBDB" Padding="0,8,0,0" Text="{Binding PreviewMessage}" TextWrapping="NoWrap" HorizontalAlignment="Stretch" Grid.Column="3"/>
                            <TextBlock Margin="3.99900007247925,0,0,0" FontFamily="Trebuchet MS" FontSize="11" Foreground="#FFDBDBDB" Padding="3,10,0,0" Text="11/18/08 12:34 PM" TextWrapping="NoWrap" HorizontalAlignment="Stretch" Grid.Column="4"/>
                            <Rectangle HorizontalAlignment="Stretch" Margin="3.99900007247925,0,0,0" VerticalAlignment="Stretch" Grid.Column="4" Fill="#7F4E4E4E" Stroke="#FF000000" StrokeThickness="0" RadiusX="2" RadiusY="2"/>
                        </Grid>
                    </DataTemplate>
                    <local:Email x:Key="theEmail" IsChecked="False" IsSelectVisible="Visible" MailBackground="#7F595959" ImageSource="Images/butterfly.png" PreviewMessage="The Don: Hello world :D"/>
                </StackPanel.Resources>            
                <ContentControl Content="{Binding Source={StaticResource theEmail}}" ContentTemplate="{StaticResource EmailTemplate}"/>
            </StackPanel>

I created a local xmlns declaration at the top of the page and set it to the current directory. The class definition to Email is fairly simple as well:

public class Email
    {
        public bool IsChecked { get; set; }
        public Visibility IsSelectVisible { get; set; }
        public string PreviewMessage { get; set; }
        public ImageSource ImageSource { get; set; }
        public SolidColorBrush MailBackground { get; set; }
    }

 That's it. But as soon as I go to display it, everything goes terribly wrong! It completely throws off the user interface. Any thoughts on databinding?
 

tomhat

Loading...
Joined on 04-05-2008
Salt Lake City, UT
Posts 13
05-14-2008 5:28 AM
Re: DataTemplate

It seems ok on my pc. What do you mean by terribly wrong ?

Thierry Bouquain
Ucaya
http://www.ucaya.com

thierry.bouquain

Loading...
Joined on 05-06-2007
Nantes, France
Posts 274
Page view counter