2012-03-09 66 views
0

我試圖創建在Silverlight的用戶中,我想展示自己的形象,名稱的列表,分數等將圖像添加到Silverlight中的DataGrid行?

我用這個代碼來繪製一個DataGrid,這樣我看起來像一個列表:

 <sdk:DataGrid Grid.Row="1" x:Name="KitchenChart" HorizontalAlignment="Center" AutoGenerateColumns="False" ItemsSource="{Binding KitchenScore}" Background="Black" 
      AlternatingRowBackground="Black" GridLinesVisibility="Horizontal"> 
       <sdk:DataGrid.Columns> 
        <sdk:DataGridTemplateColumn Header="Image" IsReadOnly="True"> 
         <sdk:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Background="Black"> 
            <Image Source="{Binding Image}" />         
           </StackPanel> 
          </DataTemplate> 
         </sdk:DataGridTemplateColumn.CellTemplate> 
        </sdk:DataGridTemplateColumn> 
        <sdk:DataGridTemplateColumn Header="Name"> 
         <sdk:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Background="Black"> 
            <TextBlock Padding="5,0,5,0" Text="{Binding Name}" Foreground="White"/> 
           </StackPanel> 
          </DataTemplate> 
         </sdk:DataGridTemplateColumn.CellTemplate> 
        </sdk:DataGridTemplateColumn> 
        <sdk:DataGridTemplateColumn Header="Score"> 
         <sdk:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Background="Black"> 
            <TextBlock Padding="5,0,5,0" Text="{Binding Score}" Foreground="White" HorizontalAlignment="Stretch"/> 
           </StackPanel> 
          </DataTemplate> 
         </sdk:DataGridTemplateColumn.CellTemplate> 
        </sdk:DataGridTemplateColumn> 
       </sdk:DataGrid.Columns> 
      </sdk:DataGrid> 

And the i used class to load dynamic data in datagrid using this as : 
public class KitchenScoreClass 
    { 
     public Image Image { get; set; } 
     public string Name { get; set; } 
     public int Score { get; set; } 
     public KitchenScoreClass(Image Image, string Name, int Score) 
     { 
      this.Image = Image; 
      this.Name = Name; 
      this.Score = Score; 
     } 
    } 

然後我創建了加載dynimically所有數據

private List<KitchenScoreClass> KitchenScore() 
     { 
      List<KitchenScoreClass> avgg = new List<KitchenScoreClass>(); 

      avgg.Add(new KitchenScoreClass(??? ,"kundan",10)); 
      avgg.Add(new KitchenScoreClass(??? , "me", 15)); 
      avgg.Add(new KitchenScoreClass(??? , "varun", 10)); 

      return avgg; 
     } 

,並在最後一次使用此功能將數據添加到數據網格KitchenChart作爲一個函數:

public ScoreCharts() 
     { 
      InitializeComponent(); 
      KitchenChart.ItemsSource = KitchenScore(); 
     } 

但我不知道如何添加圖像?假設我的所有圖像都與我的解決方案文件夾一起存儲在文件夾Mysolution/MyImgs中。 我如何添加圖片?

請幫

感謝

+1

你的圖像存儲在哪裏? – ChrisF 2012-03-09 11:03:36

+0

@ChrisF:剛剛更新... – CracLock 2012-03-09 11:10:50

回答

0

添加使用圖像列 「DataGridTempalteColumn。」添加一個單元格模板並創建一個圖像對象以在單元格中顯示圖像。例如:

<data:DataGridTemplateColumn> 

<data:DataGridTemplateColumn.CellTemplate> 

<DataTemplate> 

<Image x:Name="picture" ImageFailed="picture_ImageFailed" Width="200" Height="130" Visibility="Visible"/> 

</DataTemplate> 

</data:DataGridTemplateColumn.CellTemplate> 

</data:DataGridTemplateColumn> 
+0

我認爲OP正在問*如何創建圖像對象*。 XAML看起來很好,它是需要的代碼中的'???'。 – ChrisF 2012-03-09 12:04:41

0

您需要讀取光盤的圖像,並將其轉換爲Image對象。你這樣做有ImageSourceConverter

ImageSourceConverter ISC = new ImageSourceConverter(); 

var newImage = new Image 
    { 
     Stretch = Stretch.None, 
     HorizontalAlignment = HorizontalAlignment.Left, 
     VerticalAlignment = VerticalAlignment.Top 
    }; 

newImage.Source = (ImageSource)ISC.ConvertFromString(ImagePath); 

注意:這需要將圖像下載到客戶端機器,是/ClientBin文件夾下的某個地方。

+0

我有一個文件夾中的圖像...圖像以及我的解決方案文件夾?如何爲其設置ImagePath? – CracLock 2012-03-09 14:23:58

+0

@CracLock - 如果圖像在您的解決方案中,那麼您需要a)移動它們或b)將它們包含爲資源。代碼將是相同的,但您不需要'ImageSourceConverter'。 – ChrisF 2012-03-09 14:35:58

+0

嗨試圖添加一個圖像以及其他文件在解決方案和didi這... newImage.Source =(ImageSource)ISC.ConvertFromString(「m.jpg」);但它沒有顯示任何圖像?高度/寬度值的任何問題? – CracLock 2012-03-09 15:24:38