2013-10-03 70 views
2

我是c#和WPF的新用戶,我有一個問題來填充文本和圖像ListView用c#在wpf listview中添加圖像#

這是我的WPF代碼:

<Grid> 
    <ListView Name="MyList" Margin="0,0,328.4,-0.2" > 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Rete" DisplayMemberBinding="{Binding Rete}"/> 
       <GridViewColumn Header="Immagine" > 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <Image Source="{Binding Immagine}" /> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
     <Image Height="100" Width="100"/> 
    </ListView> 
    <Button Content="Button" HorizontalAlignment="Left" Margin="324,83,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/> 
    </Grid> 

,這是我的C#代碼:

while (r.Read()) 
     { 

      MyList.Items.Add(new { Rete = r.GetString(0), Immagine = r.GetString(1) }); 
     } 

感謝所有我已經解決了!我改變了數據庫中的圖像路徑代碼是正確的! :)

+0

哪裏是你的問題?讀取數據或顯示數據? – Sheridan

+0

我的問題是顯示數據!文字是好的,但我沒有看到圖像。該圖像位於調試文件夾中,我正確地讀取了她的名字! – Stefano

+0

爲什麼你會在「Debug」文件夾中放置一個圖像?爲了清晰起見,它*應該放在一個名爲'Images'的文件夾中。另外,請向我們展示您在'Immagine'屬性中用於'Image.Source'的值。 – Sheridan

回答

3

這是我的xaml代碼。

<Grid> 
    <ListView x:Name="ListView1" VirtualizingStackPanel.IsVirtualizing="True" Height="200" ItemsSource="{Binding ListViewItemsCollections}"> 
     <ListView.View> 
      <GridView AllowsColumnReorder="False"> 
       <GridViewColumn x:Name="GridViewColumnName" Header="Name" Width="200"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <StackPanel Orientation="Horizontal"> 
           <Image x:Name="Image_GridViewColumnName" Width="100" Height="50" Source="{Binding GridViewColumnName_ImageSource}" /> 
           <Label Content="{Binding GridViewColumnName_LabelContent}" Width="50" Height="100" /> 
           <Label Content="{Binding GridViewColumnName_ID}" Visibility="Hidden" /> 
          </StackPanel> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
       <GridViewColumn x:Name="GridViewColumnTags" Header="Tags" Width="100" DisplayMemberBinding="{Binding GridViewColumnTags}" /> 
       <GridViewColumn x:Name="GridViewColumnLocation" Header="Location" Width="238" DisplayMemberBinding="{Binding GridViewColumnLocation}" /> 
      </GridView> 
     </ListView.View> 
    </ListView> 
</Grid> 

這是我的C#部分..

public ObservableCollection<ListViewItemsData> ListViewItemsCollections { get { return _ListViewItemsCollections; } } 
    ObservableCollection<ListViewItemsData> _ListViewItemsCollections = new ObservableCollection<ListViewItemsData>(); 

    public MainWindow() 
    { 

     InitializeComponent(); 

     ListViewItemsCollections.Add(new ListViewItemsData() 
     { 
      GridViewColumnName_ImageSource = @"D:\rd\C Sharp\general\StackOverFlowAnswers\WPF\MSD.JPG", 
      GridViewColumnName_LabelContent = "shanmugharaj" 
     }); 

     ListView1.ItemsSource = ListViewItemsCollections; 
    } 

    public class ListViewItemsData 
    { 
     public string GridViewColumnName_ImageSource { get; set; } 
     public string GridViewColumnName_LabelContent { get; set; } 
     public string GridViewColumnName_ID { get; set; } 
     public string GridViewColumnTags { get; set; } 
     public string GridViewColumnLocation { get; set; } 
    } 
} 

我用這些測試其工作很好.. 如果我理解正確的ID,這是你需要..