проблема с дизайном шаблона

#c# #silverlight #windows-phone-7

#c# #серебристый свет #windows-телефон-7

Вопрос:

У меня есть шаблон App.xaml :

 <Application.Resources>
        <!-- template for recent history -->
        <DataTemplate x:Key="ListViewModelTemplate"> <!-- for recent recepies-->

            <Grid Width="400" Height="80" VerticalAlignment="Center">

                <StackPanel Orientation="Vertical">
                <Border CornerRadius="0" x:Name="brdTesat" BorderBrush="Black" BorderThickness="1" Width="80" Height="80">

                <Border.Background>
                    <ImageBrush x:Name="backgroundImaageBrush" Stretch="Fill">

                        <ImageBrush.ImageSource>

                                <BitmapImage x:Name="bmapBackground" UriSource="{Binding imageUriPath}" >
                            </BitmapImage>

                        </ImageBrush.ImageSource>
                    </ImageBrush>
                </Border.Background>
            </Border>
                <StackPanel>
                <TextBlock TextAlignment="Left" Margin="7,4,4,4" Text="{Binding title}" TextWrapping="Wrap"></TextBlock>
                    <TextBlock TextAlignment="Left" Margin="7,4,4,4" Text="{Binding subTitle}" TextWrapping="Wrap"></TextBlock>
                </StackPanel>
            </StackPanel>

        </Grid>
    </DataTemplate>
 

и попробуйте вызвать его для отображения в списке. Проблема в том, что список, хотя и привязан к данным, не знает, как работать с шаблоном. Вот мое определение списка :

 <ListBox x:Name="recepiesList"  ItemsSource="{Binding recepiesList}" ItemTemplate="{StaticResource ListViewModelTemplate}"  >
 

если я определю шаблон на месте, например

 <ListBox.Template><DataTemplate><TextBlock text={Binding title} /></DataTemplate></ListBox.Template>
 

список работает отлично, но мне нужно исправить свое приложение.Ресурсы один. Как я могу это сделать?

Ответ №1:

Вот правильный DataTemplate

  <DataTemplate x:Key="ListViewModelTemplate"> <!-- for recent recepies-->

                <!-- for recent recepies-->
                <StackPanel Orientation="Horizontal">
                    <Border CornerRadius="0" x:Name="brdTesat" BorderBrush="White" BorderThickness="1" Width="80" Height="80">

                        <Border.Background>
                            <ImageBrush x:Name="backgroundImaageBrush" Stretch="Fill">

                                <ImageBrush.ImageSource >

                                    <BitmapImage x:Name="bmapBackground"  UriSource="{Binding imageUriPath}" >
                                    </BitmapImage>

                                </ImageBrush.ImageSource>
                            </ImageBrush>
                        </Border.Background>
                    </Border>
                    <StackPanel >
                        <TextBlock TextAlignment="Left" Margin="7,4,4,4" Text="{Binding title}" TextWrapping="Wrap"></TextBlock>
                        <TextBlock TextAlignment="Left" Margin="7,4,4,4" Text="{Binding subTitle}" TextWrapping="Wrap"></TextBlock>
                    </StackPanel>
                </StackPanel>


            </DataTemplate>
 

Казалось, что сетка создает проблему..