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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение DataGrid и изменение свойств объектов 
:(
    Опции темы
Storkur
Дата 12.4.2011, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!

Есть коллекция с фигурами 
Код
 List<Shape> ShapesList = new List<Shape>();


1. Нужно выводить в табличном виде свойства одной, выбранной в данный момент фигуры. Вывод должен быть примерно как Properties визуальных компонентов в Visual Studio табличкой (пара: имя - значение). 
2. В этой табличке Properties необходимо изменять свойства выбранного объекта, в основном те которые относятся к визуальному виду (размер, тип заливки и т.д.)
3. Подходит ли для этого DataGrid?

В DataGrid получается добавить только всю коллекцию и то свойства каждого элемента отображаются в длиннющую строчку.
Код

ShapeProperties.ItemsSource = ShapesList;


Подскажите как реализовать, то что я написал в пунктах 1-3? 



Заранее спасибо!

Это сообщение отредактировал(а) Storkur - 12.4.2011, 13:57
PM MAIL   Вверх
likegift
Дата 12.4.2011, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

<DataGrid AutoGenerateColumns="False" Name="MainGrid" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ItemsSource="{Binding ShapesList}" >
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Параметр" Binding="{Binding Path=PropertyDescription,Mode=OneWay}" IsReadOnly="True" CanUserSort="False"  CanUserReorder="False" Width="150"/>
                                <DataGridTextColumn Header="Значение" Binding="{Binding Path=PropertyValue,Mode=OneWay}" IsReadOnly="True" CanUserSort="False" Width="*"/>
                            </DataGrid.Columns>
                        </DataGrid>


к примеру, вот такой грид, который биндится к списку Shapeslist. Лучше заменить List на ObservableCollection. Для Wpf он роднее smile
здесь же два поля "Параметр" и "Значение", которые биндятся соответственно к свойствам PropertyDescription  и PropertyValue класса ShapesList.

это что касается самого простого отображения данных. еще надо не забыть в DataContent-e грида указать ссылку на класс, содержащий List<Shape> ShapesList = new List<Shape>(). иначе грид просто не знает откуда брать ShapeList. 
а вот с изменением тут сложнее. для изменение данных свой-во IsReadOnly лучше стереть, а Mode выставить в TwoWays. Однако, учитывая разнородность данных, придется переписывать Template у грида. сам не делал, но почитать можно тут
PM MAIL   Вверх
Storkur
Дата 19.4.2011, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, особо что то не разобрался, но нашел сторонний компонент Property Grid тут  http://wpg.codeplex.com/
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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