Добавление изображения в столбце ListView - PullRequest
1 голос
/ 27 февраля 2012

Я столкнулся с проблемой при добавлении изображения в столбец в ListView в wpf. У меня есть два столбца сказать х и у, и я хочу добавить изображение в столбце у. Я много пробовал. Мой xaml ниже ---

 `<ListView Name="listView1" ItemsSource="{Binding}" DataContext="{Binding}" SelectionMode="Single">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Directory" DisplayMemberBinding="{Binding Directory}" />
                <GridViewColumn Header="Status" DisplayMemberBinding="{Binding Status}" >                        
               </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
 `

и мой код c # ниже

       public class FolderPath
    {
        public string Directory { get; set; }

        public System.Drawing.Image Status { get; set; }
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {                    
 ObservableCollection<FolderPath> _FolderCollection = new ObservableCollection<FolderPath>();
 BitmapImage b = new BitmapImage();
 b.BeginInit();
 b.UriSource = new Uri(@"C:\Users\smk\Documents\Visual Studio 2010\Projects\Folder_locker\Folder_locker\folder_lock.ico");
 b.EndInit();

 System.Windows.Controls.Image i= new System.Windows.Controls.Image();
 i.Height = 20;
 i.Source = b;

 System.Drawing.Image.FromFile(@"C:\Users\smk\Documents\Visual Studio 2010\Projects\Folder_locker\Folder_locker\folder_lock.ico");


      listView1.Items.Add(new FolderPath { Directory = "something", Status = System.Drawing.Image.FromFile(@"C:\Users\smk\Documents\Visual Studio 2010\Projects\Folder_locker\Folder_locker\folder_lock.ico") });                  
    }

отображает что-то в первом столбце, но ничего не отображает во втором столбце. Я пробовал оба system.windows.controls.image и system.drawing.image, но он не показывает изображение. что я могу сделать?

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Попробуйте это:

public class FolderPath
{
    public string Directory { get; set; }
    public string Status { get; set; }
}

<GridViewColumn Header="Status">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Image Source="{Binding Path=Status}"/>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>


private void button1_Click(object sender, RoutedEventArgs e)
{                    
    ObservableCollection<FolderPath> _FolderCollection = new ObservableCollection<FolderPath>();

    listView1.Items.Add(new FolderPath { Directory = "something", Status = @"C:\Users\smk\Documents\Visual Studio 2010\Projects\Folder_locker\Folder_locker\folder_lock.ico" } )
}
1 голос
/ 27 февраля 2012
...