Добавление изображения в строку DataGrid в Silverlight? - PullRequest
0 голосов
/ 09 марта 2012

Я пытаюсь создать список пользователей в Silverlight, в котором я хочу показать их изображение, имя, оценку и т. Д.

Я использовал этот код, чтобы нарисовать сетку данных, чтобы я выглядел как список:

     <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;
        }
    }

, а затем я создал функцию, которая загружает все данные двоично

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 вместе с папками моих решений. Как я могу добавить изображения?

Пожалуйста, помогите

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Вам необходимо прочитать изображение с диска и преобразовать его в 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 голосов
/ 09 марта 2012

Добавьте столбец изображения, используя «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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...