Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Не привязывается картинка


Автор: JackK87 9.10.2012, 09:56
Привет всем!
Пытаюсь сделать чтото типа ftp клиента и застрял на однои мелочи. не привязываются иконки в списке фаилов, список фалов загрежаю в listview. 
для GridViewColumn использую шаблон
Код

        <DataTemplate x:Key="iconCell">
            <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal">
                <Image Name="img" Source="{Binding ImageItem}" Margin="0,0,4,0"></Image>
                <TextBlock Name="tb" Text="{Binding FileName}"></TextBlock>
            </StackPanel>
        </DataTemplate>


Список фаилов формирую так 
Код

        private List<ItemFtp> GetFtpItemList(object folder)
        {
            List<ItemFtp> lReturn = new List<ItemFtp>();
            List<FtpListItem> lFtpItems = ftp.GetListing(folder.ToString()).ToList();           

            foreach (FtpListItem item in lFtpItems)
            {
                if (item.Type == FtpObjectType.Directory)
                {
                    lReturn.Add(
                        new ItemFtp(item.Name, item.Modify.ToLongDateString(), null, 0, Properties.Resources.folder, item.Type));
                }
                else if (item.Type == FtpObjectType.File)
                {
                    string[] file = item.Name.Split('.');
                    if (file[1].ToUpper() == "ZIP")
                        lReturn.Add(
                            new ItemFtp(item.Name, item.Modify.ToLongDateString(), FormatBytes(item.Size), item.Size, null, item.Type));
                }
            }
            return lReturn;
        }

класс ItemFtp  имеет вид
Код

     public class ItemFtp
    {
        public string FileName { get;set;}
        public string DateModify { get; set; }
        public string StrSize { get; set; }
        public long Size { get; set; }
        public Image ImageItem { get; set; }
        public FtpObjectType TypeFtpItem { get; set; }

        public ItemFtp(string fileName, string dateModify, string strSize, long size, Image image, FtpObjectType typeItem)
        {
            this.FileName = fileName;
            this.DateModify = dateModify;
            this.StrSize = strSize;
            this.Size = size;
            this.ImageItem = image;
            this.TypeFtpItem = typeItem;
        }
    } 

Привязку делаю так
Код

                 <ListView  Name="lvDirectory" ItemContainerStyle="{StaticResource ResourceKey=StyleRow}" 
                    SelectionMode="Single" SelectionChanged="lvDirectory_SelectionChanged">
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="Имя" Width="200" CellTemplate="{StaticResource ResourceKey=iconCell}" />
                                <GridViewColumn Header="Изменен" DisplayMemberBinding="{Binding Path=DateModify}"/>
                                <GridViewColumn Header="Размер" DisplayMemberBinding="{Binding Path=StrSize}"/>
                                <GridViewColumn Header="Деиствие" CellTemplate="{StaticResource ResourceKey=buttonCell}"/>
                            </GridView>
                        </ListView.View>
                    </ListView>

При загрузки имена фаилов биндятся на ура а вот иконки почему - то нет. 
Если можно подскажите что я сделал не так?

Автор: zhiday 2.11.2012, 14:44
Попробуйте заменить <Image Name="img" Source="{Binding ImageItem}"/> на <Image Name="img" Source="{Binding Path=ImageItem.Source}"/>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)