Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ListView добавить отображение колекции / 5 сообщений из 5, страница 1 из 1
13.06.2015, 13:34
    #38983230
mikola1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView добавить отображение колекции
Доброе время суток.
Есть список в котором хранятся данные, его необходимо отобразить в ListView
Причем в одном столбце данные необходимо отображать в виде индикатора, индикатор сделал в виде отдельного компонента и пытаюсь его добавить в ListView.
Добавить получилось, но вот привязать его к источнику данных не получается, У UserControl1 есть свойство RatingValue, пытаюсь к нему привязать данные через Binding, показывает что привязать можно только Sensors, а мне бы надо свойство объекта который хранится в коллекции Sensors, такое ощущение что он не видит привязку ItemsSource="{Binding Sensors}"

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<ListView Name="LvData" ItemsSource="{Binding Sensors}">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Номер датчика" />
                    <GridViewColumn DisplayMemberBinding="{Binding LevelValue}" Header="Урвоень сигнала,дБ" />
                    <GridViewColumn Header="Урвоень сигнала">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <model:UserControl1 />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Description}" Header="Примечание" />
                </GridView>
            </ListView.View>
        </ListView>



Подскажите как привязать контрол к данным, как для остальных столбцов ListView?
П.С. если в RatingValue задаю например 3 то число обрабатывается и отображается.
...
Рейтинг: 0 / 0
14.06.2015, 06:30
    #38983391
mikola1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView добавить отображение колекции
Внес исправление в текст:

Доброе время суток.
Есть список в котором хранятся данные, его необходимо отобразить в ListView
Причем в одном столбце данные необходимо отображать в виде индикатора, индикатор сделал в виде отдельного компонента и пытаюсь его добавить в ListView.
Добавить получилось, но вот привязать его к источнику данных (массив объектов Sensors) не получается, У UserControl1 есть свойство RatingValue, пытаюсь к нему привязать данные через Binding, показывает что привязать можно только Sensors, а мне бы надо свойство объекта который хранится в коллекции Sensors, такое ощущение что он не видит привязку ItemsSource="{Binding Sensors}"

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<ListView Name="LvData" ItemsSource="{Binding Sensors}">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Номер датчика" />
                    <GridViewColumn DisplayMemberBinding="{Binding LevelValue}" Header="Урвоень сигнала,дБ" />
                    <GridViewColumn Header="Урвоень сигнала">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <model:UserControl1 />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Description}" Header="Примечание" />
                </GridView>
            </ListView.View>
        </ListView>



Подскажите как привязать контрол к данным, как для остальных столбцов ListView?
П.С. если в RatingValue задаю например 3 то число обрабатывается и отображается.
...
Рейтинг: 0 / 0
14.06.2015, 08:44
    #38983398
mikola1982
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView добавить отображение колекции
В строке вывода отладчика пишет:
авторSystem.Windows.Data Error: 40 : BindingExpression path error: 'Sensor1' property not found on 'object' ''UserControl1' (Name='')'. BindingExpression:Path=Sensor1.QualityLevel; DataItem='UserControl1' (Name=''); target element is 'UserControl1' (Name=''); target property is 'RatingValue' (type 'Int32')
...
Рейтинг: 0 / 0
16.06.2015, 11:24
    #38984539
@k@DElpher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView добавить отображение колекции
Текст UserControl1 не привели.
Или вы так делаете?
Код: xml
1.
<model:UserControl1 RatingValue="{Binding Sensor1}" />
...
Рейтинг: 0 / 0
16.06.2015, 14:04
    #38984816
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ListView добавить отображение колекции
не очень понятно, зачем в шаблоне данных использовать UserControl, когда можно просто определить всё в самом шаблоне данных, при это использую триггеры и другие ништяки.
Шаблон данных, на то и шаблон данных, это не контрол.

UserControl это просто наследник ContentControl'а.

его имеет смысл использоваться, если вы собираетесь в итоге добавлять внутри другие объекты (непосредственно на конструкторе)/ При этом он включает в себя не еще и ScrollableControl, который в ячейке уж точно не нужен.

Имеет смысл просто взять контрол и определить в нём шаблон, задать свойства зависимости. И через {TemplateBinding} задать в шаблоне на основе его свойств внешний вид.

Но я бы просто создал в ресурсах шаблон для этого "Уровня сигнала" и просто им пользовался.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ListView добавить отображение колекции / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]