Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dataGrid + image отображение без ЛКМ 
:(
    Опции темы
LeonGrey
  Дата 23.5.2013, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.5.2013

Репутация: нет
Всего: нет



Объясните, пожалуйста, какой свойство у dataGrid или dataGridRow отвечает за способ отображения изображения в ячейке?
В dataGrid должны отображаться картинки, но это происходит только после двойного ЛКМ, а как сделать так, что картинки отображались и без ЛКМ причем во всех строках одновременно?
Не помогло:

Код

<Style x:Key="MyStyleDataGridRow" TargetType="{x:Type DataGridRow}">
<Style.Setters>
<Setter Property="Height" Value="100"/>
<Setter Property="Visibility" Value="Visible"/>
</Style.Setters>
</Style>


Т.е. сейчас DataGrid кажется пустым, а при двойном щелчке отображается содержимое (картинка)

Это сообщение отредактировал(а) LeonGrey - 23.5.2013, 10:43
PM MAIL   Вверх
dzaraev
Дата 3.7.2013, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



При данной постановке вопроса, мне например, абсолютно непонятно - в чём вообще проблема?
Как у вас связано отображение каких-то изображений с ЛКМ и где этот код? Какой DataGrid имеется ввиду - он сильно отличается в WPF и Silverlight.
Приведённый фрагмент кода вообще ничего не меняет в плане отображения содержимого ячеки (по-умолчанию высота - авто и Visibility==Visible).

Цитата(LeonGrey @  23.5.2013,  10:41 Найти цитируемый пост)
Объясните, пожалуйста, какой свойство у dataGrid или dataGridRow отвечает за способ отображения изображения в ячейке?

Попробую ответить "наугад" (предполагая, что DataGrid из WPF). 
Во-первых, нет настроек для отображения именно изображения. Есть стиль отображения ячейки (DataGrid.CellStyle). Он применяется к каждой ячейке грида, если только какой-то ячейке не задан непосредственно свой стиль. Далее, в гриде задаются колонки. Есть несколько типов колонок, созданных под опредлённый тип элемента, например DataGridTextColumn выводит в ячейке просто строковое значение элемента (получаемое из Object.ToString). Для вашего же случая (изображение) нет предопределённой колонки, но есть специальная колонка DataGridTemplateColumn. У этой колонки есть свойство CellTemplate, определяющее шаблон, которым будет отображаться элемент в этой ячейке (именно элемент, а не сама ячейка). Вот его вам и нужно использовать.
Предполагаю. что ваша проблема в том, что одно из свойств элемента грида отвечает за изображение, и вы не можете его отобразить.
В простейшем случае решение будет выглядеть так:
Код

//Элемент для DataGrid
public class MyDataGridItem
{
    ImageSource Image { get; set; }
    string Description { get; set; }
}


Код

    //Код главного окна
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            var items = new List<MyDataGridItem> {
                new MyDataGridItem {
                    Image = new BitmapImage(new Uri("my_image.png", UriKind.Relative)),
                    Description = "It's image"
                },
                new MyDataGridItem {
                    Image = new BitmapImage(new Uri("my_image2.png", UriKind.Relative)),
                    Description = "It's another image!"
                },
                new MyDataGridItem {
                    Image = new BitmapImage(new Uri("my_image3.png", UriKind.Relative)),
                    Description = "annoying images!"
                },
            };
            myDataGrid.ItemsSource = items;
        }
    }


Код

<!--XAML код главного окна-->
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        >
    <DataGrid x:Name="myDataGrid" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Изображение">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Image Source="{Binding Image}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTextColumn Header="Описание" Binding="{Binding Description}"/>
        </DataGrid.Columns>
    </DataGrid>
</Window>


Это сообщение отредактировал(а) dzaraev - 3.7.2013, 22:25
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.