С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Katen
1 / 1 / 0
Регистрация: 28.01.2012
Сообщений: 29
1

Отображение картинки в ячейке DataGrid в зависимости от условия

27.05.2012, 11:16. Просмотров 1201. Ответов 1
Метки нет (Все метки)

Добрый день.
На форме есть datagrid. Заполняю его из БД.Есть вычисляемый столбец.
Если в этом столбце 0, то отображаем в ячейке картинку с красной галочкой, в противном ничего.
Пробовала сделать через селектор шаблона:
в xaml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <DataGrid  AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Path=NAME}" Header="Name" Width="200"/>
                <DataGridTextColumn Binding="{Binding Path=ID}" Header="ID" Width="50" />
                 <DataGridTemplateColumn>
                        <DataGridTemplateColumn.CellTemplateSelector>
                        <my:SingleCriteriaHighlightTemplateSelector  
                                HighlightTemplate="{StaticResource HighlightTemplate}"
                                DefaultTemplate="{StaticResource DefaultTemplate}"
                                PropertyToEvaluate="JOB"
                                PropertyValueToHighlight="0">
                        </my:SingleCriteriaHighlightTemplateSelector>
                        </DataGridTemplateColumn.CellTemplateSelector>
                    </DataGridTemplateColumn>                
            </DataGrid.Columns>
        </DataGrid>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 public class SingleCriteriaHighlightTemplateSelector : DataTemplateSelector 
    {
        public DataTemplate DefaultTemplate
        {
            get;
            set;
        }
        public DataTemplate HighlightTemplate
        {
            get;
            set;
        }
 
       public string PropertyToEvaluate 
       {
            get; set; 
       }
        public string PropertyValueToHighlight
        {
        get; set; 
        }
 
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
    DataUnit product = item as DataUnit;
    Type type = product.GetType();
    PropertyInfo property = type.GetProperty(PropertyToEvaluate);
    // Решить, должен ли товар быть выделен, на основе значения свойства. 
    if (property.GetValue(product, null).ToString() == PropertyValueToHighlight)
    {
        return HighlightTemplate;
    }
    else
    {
        return DefaultTemplate;
 
    }
}
Почему-то item=null.
Может кто-нибудь сталкивался с такой задачей?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 11:16
Ответы с готовыми решениями:

Отображение картинки в DataGrid в зависимости от контекста
Имеется: &lt;DataGridTemplateColumn Header=&quot;Вложения&quot;&gt; ...

dataGrid + image --- отображение картинки по щелчку
В столбце датагрида отображаются картинки. Проблема: визуально кажется, что...

Datagrid в ячейке Datagrid c корректным отображением границ
Задача поместить связанные данные (две таблицы Sql связаны по id ) в виде...

WPF, DataGrid и многострочие в ячейке
Как ясно из вопроса: есть DataGrid и текст в ячейках. Как сделать перенос...

Заполнение значения в определённой ячейке DataGrid
Добрый день, уважаемые форумчане! Не так давно стал изучать WPF. Возник один...

1
Unril
790 / 681 / 109
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
27.05.2012, 16:24 2
А ты его проверяй на null в начале. SelectTemplate вызывается перед привязкой и потом после привязки. При втором проходе item будет не null. Поставь точку останова внутри и нажимай F5, увидишь, что после нескольких null, пойдут нормальные значения.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 16:24

Два значения из БД в одной ячейке DataGrid
День добрый. Из БД берётся два значения цены из разных таблиц, надо что бы эти...

Забиндить компоненты к данным в зависимости от условия
В общем привязывал я коллекцию такого класса public class item :...

Медленное отображение DataGrid
Здравствуйте, форумчане! Появилась проблема с первым отображением DataGrig...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru