Изображение не отображается в сетке - PullRequest
0 голосов
/ 21 июля 2011

В моем приложении я хочу отобразить изображение внутри списка, которое связано с объектами через привязку данных.Однако по какой-то причине картина не появляется, и я не могу определить ошибку.Я знаю, что изображение находится в объекте, потому что, если я добавляю новый объект Image в XAML и в коде устанавливаю его источник для одного из изображений из объекта, он показывает его.

Ниже приведен мой код в пошаговом режиме:

        foreach (Indtastning indt in listBoxIndhold.ItemsSource)
        {
            byte[] data = Convert.FromBase64String(indt.imageName);
            Stream memStream = new MemoryStream(data);
            WriteableBitmap wbimg = PictureDecoder.DecodeJpeg(memStream);
            indt.picture = new Image();
            indt.picture.Source = wbimg;
            //Below is my test image, which shows the picture correctly. 
            testimage.Source = indt.picture.Source;
        }

Мой XAML с изображением:

<ListBox x:Name="listBoxIndhold" Grid.Row="0"  
                     ItemsSource="{Binding .}"
                     ScrollViewer.VerticalScrollBarVisibility="Visible"   >
            <ListBox.ItemTemplate>
                <DataTemplate >
                    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ShowGridLines="False">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="auto"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="auto"/>
                            <ColumnDefinition Width="auto"/>

                        </Grid.ColumnDefinitions>

                        <TextBlock Text="{Binding Mode=OneWay, Path=name}" Grid.Column="0"
                                       HorizontalAlignment="Stretch" VerticalAlignment="Center"
                                       Style="{StaticResource PhoneTextSmallStyle}"
                                       TextWrapping="Wrap" FontSize="24"> 
                               <toolkit:ContextMenuService.ContextMenu>
                                    <toolkit:ContextMenu>
                                        <toolkit:MenuItem Tag="{Binding Mode=OneWay, Path=name}" Header="Rediger"  Click="MenuItem_Click" />
                                        <toolkit:MenuItem Tag="{Binding Mode=OneWay, Path=name}" Header="Slet"  Click="MenuItem_Click_1"/>
                                    </toolkit:ContextMenu>
                               </toolkit:ContextMenuService.ContextMenu>
                        </TextBlock>

                        <TextBlock Text="{Binding Mode=OneWay, Path=description}" Grid.Column="1"
                                       HorizontalAlignment="Stretch" VerticalAlignment="Center"
                                       Style="{StaticResource PhoneTextSmallStyle}" TextWrapping="Wrap"
                                        FontSize="24"> 
                               <toolkit:ContextMenuService.ContextMenu>
                                    <toolkit:ContextMenu>
                                        <toolkit:MenuItem Tag="{Binding Mode=OneWay, Path=name}" Header="Rediger"  Click="MenuItem_Click" />
                                        <toolkit:MenuItem Tag="{Binding Mode=OneWay, Path=name}" Header="Slet"  Click="MenuItem_Click_1"/>
                                    </toolkit:ContextMenu>
                               </toolkit:ContextMenuService.ContextMenu>
                        </TextBlock>

                        <Image Source="{Binding Mode=OneWay, Path=picture}" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Width="48" Height="48" />

                        <TextBlock Text="{Binding Mode=OneWay, Path=amount}" Grid.Column="3"
                                       HorizontalAlignment="Stretch" VerticalAlignment="Center"
                                       Style="{StaticResource PhoneTextSmallStyle}"
                                       FontSize="24" > 
                               <toolkit:ContextMenuService.ContextMenu>
                                    <toolkit:ContextMenu>
                                        <toolkit:MenuItem Tag="{Binding Mode=OneWay, Path=name}" Header="Rediger"  Click="MenuItem_Click" />
                                        <toolkit:MenuItem Tag="{Binding Mode=OneWay, Path=name}" Header="Slet"  Click="MenuItem_Click_1"/>
                                    </toolkit:ContextMenu>
                               </toolkit:ContextMenuService.ContextMenu>
                        </TextBlock>

                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Мой класс по ознакомлению:

[DataContract]
public class Indtastning
{
    [DataMember]
    public string name { get; set; }
    [DataMember]
    public double amount { get; set; }
    [DataMember]
    public string description { get; set; }
    [DataMember]
    public bool owes { get; set; }
    [DataMember]
    public string id { get; set; }
    [DataMember]
    public string imageName;

    public Image picture;


    //Constructor
    public Indtastning(string id , string navn, double beløb, string beskrivelse, bool skylder)
    {
        this.name = navn;
        this.description = beskrivelse;
        this.amount = beløb;
        this.owes = skylder;
        this.id = id;
    }
}

Кто-нибудь может заметить, что я здесь делаю неправильно?Это действительно раздражает, так как это одна из последних вещей, которые мне нужно отсортировать перед запуском приложения.

Ответы [ 2 ]

0 голосов
/ 31 января 2013

Проблема была решена давно.Смотрите мой комментарий выше.

0 голосов
/ 31 января 2013

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

...