| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Binding SelectedIteems |
| Автор: Stratus 25.6.2013, 16:29 | ||||||||
| Коллеги, подскажите плиз Задача очень простая но решить не могу.... Есть 2 грида, при выборе в первом гриде строк, эти строки должны отображаться во втором гриде. В таком виде задача решается просто, однако мне нужно чтобы во вором гриде отображались только определенные столбцы. Иными словами нужно сделать биндинг не всех столбцов первого грида а только нужых. Как это сделать?
|
| Автор: dzaraev 27.6.2013, 20:46 | ||||
Первый и самый простой способ, это явно указать во втором гриде нужные колонки (выключив при этом автогенерацию):
При этом, чтобы не дублировать значения типа Header="Поле 2" и т.п., лучше забиндить их у первой и у второй таблицы на один ресурс. Второй вариант - сделать программно, но здесь есть одна проблема, нельзя добавить в DataGrid экземпляр DataGridColumn из другого грида, будет исключение, ибо
Поэтому в этом варианте придется создавать новые колонки, и настраивать соответственно колонкам из первого грида, а это, в свою очередь, проще сделать в XAML, т.е. первым способом. Третий вариант - тоже программный. Можно влиять на автогенерируемые столбцы, с помощью обработки события http://msdn.microsoft.com/ru-ru/library/system.windows.controls.datagrid.autogeneratingcolumn(v=vs.100).aspx. В этом случае можно, например, отменить создание определённой колонки. Таким образом, указав где-нибудь список необходимых колонок(полей элемента), можно отменять все остальные колонки в этом событии. На случай, если вдруг понадобится применить к таким (автогенереным) столбцам свой DataTemplate http://www.codeproject.com/Articles/43525/WPF-DataGrid-Using-DataTemplates-for-auto-generate. P.S. Кстати, если есть возможность, советую перевести проект на .NET 4.0, там DataGrid уже включен в сам фреймворк и тулкит не нужен. |
| Автор: Stratus 17.7.2013, 22:12 |
| dzaraev, Спасибо большое за развернутый ответ. У меня получилось, но что-то сразу до этого догадаться ума не хватило. |
| Автор: dzaraev 18.7.2013, 06:57 |
| В таком случае прошу пометить вопрос, как решённый |